我有一个网站。记录用户时,将加载会话详细信息。 当用户注销会话时,详细信息将被放弃。 (单击注销菜单注销) 当用户只是关闭浏览器然后如何销毁会话。
下次使用相同的会话数据进行日志记录。我需要避免这种情况。
答案 0 :(得分:2)
作为处理注销的一部分,调用Session.Clear()来清除键/值对:
http://msdn.microsoft.com/en-us/library/system.web.sessionstate.httpsessionstate.clear.aspx
答案 1 :(得分:1)
这是一个有趣的post详细说明。
答案 2 :(得分:0)
您可以将会话配置为更快地超时。
在web.config中:
< sessionState ... timeout="5" />
答案 3 :(得分:0)
您基本上有两种选择:
每个解决方案都可以使用99%,如果你将它们组合起来,你应该在99.99%的情况下设置。取决于这种行为对你的重要性。
答案 4 :(得分:0)
您可以使用Page.OnUnload javascript事件向调用Session.Abandon()的页面发出请求。这将导致用户会话在他离开您的网站时被删除。
答案 5 :(得分:0)
听起来您正在使用持久性cookie来存储身份验证票证。尝试将SetAuthCookie方法的第二个参数(createPersistentCookie)设置为false,即FormsAuthentication.SetAuthCookie(“myusername”,false);
答案 6 :(得分:0)
当用户离开网站时,不调用Page.Unload(),在引擎完成呈现之前调用它,就在HTML发送到浏览器之前。一旦发生这种情况,就无法访问该页面。
我知道在PHP中你可以使用AJAX用javascript调用PHP函数。我不知道ASP.Net是否可行,或者是否适用于会话。
答案 7 :(得分:0)
try
{
Session["Admin"] = null;
Response.Cache.SetExpires(DateTime.UtcNow.AddMinutes(-1));
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetNoStore();
Session.Abandon();
Session.Clear();
Page.Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Redirect("Dep_NewUserCreate.aspx");
}
catch(Exception ExLink)
{
Response.Redirect("Dep_NewUserCreate.aspx");
}