限制访问asp.net网站的用户数量

Ade*_*el 4 asp.net

限制访问Web应用程序的(并发)用户数量的最佳方法是什么,任何人都可以将其用于向客户销售网站/应用程序以及如何增加远程访问它的用户数量?

Paw*_*iak 6

如果使用进程内会话状态管理,则可以使用HttpApplicationState类,方法是引入Global.asax文件并在后面的代码中放置类似的内容:

void Application_Start(object sender, EventArgs e)
{
    Application["ActiveSessions"] = 0;
}

void Session_Start(object sender, EventArgs e)
{
    try
    {
        Application.Lock();

        int activeSessions = (int) Application["ActiveSessions"] + 1;
        int allowedSessions = 10; // retrieve the threshold here instead

        Application["ActiveSessions"] = activeSessions;

        if (activeSessions > allowedSessions)
            System.Web.HttpContext.Current.Response.Redirect("~/UserLimitReached.aspx", false);
    }
    finally
    {
        Application.UnLock();
    }
}

void Session_End(object sender, EventArgs e)
{
    Application.Lock();
    Application["ActiveSessions"] = (int)Application["ActiveSessions"] - 1;
    Application.UnLock();
}
Run Code Online (Sandbox Code Playgroud)

然后,在UserLimitReached.aspx中,您将调用HttpSession.Abandon()以有效地终止当前会话,因此它不会计入限制.你必须自己弄清楚其余部分.:)