使用性能计数器观察“会话总数”,我发现用户退出后会话数保持不变。这是IIS7中的预期行为吗?
这是注销实现:
Session.Clear();
Session.Abandon();
FormsAuthentication.SignOut();
感谢。
答案 0 :(得分:2)
我认为你正在寻找错误的反击:
答案 1 :(得分:1)
会话本身并不依赖于表单身份验证,如果这就是您正在使用的内容。当用户退出您的应用时,您是否在呼叫Session.Abandon()
?即便如此,如果用户在未注销的情况下停止使用该应用程序,该会话将保持打开状态,直至其过期。会话到期时间可以在web.config中设置。
答案 2 :(得分:1)
可能会破坏一个会话,但之后会创建另一个会话。仅仅因为用户未经过身份验证不再意味着他或她没有会话状态。
会话很可能会被破坏,但是在下一个请求时(我假设在同一个域/服务器上会导致会话ID被重用,从而创建一个具有相同会话ID的空会话状态)
所有这一切当然是假设您在将某人注销后立即重定向到同一网站内的某个位置。
答案 3 :(得分:1)
你这样注销你的用户吗?
HttpContext.Current.Session.Clear();
HttpContext.Current.Session.Abandon();
HttpContext.Current.User = null;
FormsAuthentication.SignOut();