登录验证成功后:
Hashtable hOnline = (Hashtable)Application["Online"];
if (hOnline != null){
IDictionaryEnumerator idE = hOnline.GetEnumerator();
while (idE.MoveNext())
{
if (idE.Value != null && idE.Value.ToString().Equals(name))
{
Page.RegisterStartupScript("alert", "<script>alert('超过最大连接数,请稍后再试!')</script>");
return;
break;
}
}
}
else
{
hOnline = new Hashtable();
}
hOnline[Session.SessionID] = name;
Application.Lock();
Application["Online"] = hOnline;
Application.UnLock();
在global.asax页面的
<%@ Application Language="C#" %>
<script runat="server">
void Application_Start(object sender, EventArgs e)
{
// 在应用程序启动时运行的代码
}
void Application_End(object sender, EventArgs e)
{
// 在应用程序关闭时运行的代码
}
void Application_Error(object sender, EventArgs e)
{
// 在出现未处理的错误时运行的代码
}
void Session_Start(object sender, EventArgs e)
{
// 在新会话启动时运行的代码
}
void Session_End(object sender, EventArgs e)
{
// 在会话结束时运行的代码。
// 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为
// InProc 时,才会引发 Session_End 事件。如果会话模式设置为 StateServer
// 或 SQLServer,则不会引发该事件。
Hashtable hOnline = (Hashtable)Application["Online"];
if(hOnline[Session.SessionID] != null)
{
hOnline.Remove(Session.SessionID);
Application.Lock();
Application["Online"] = hOnline;
Application.UnLock();
}
}
</script>