2014-09-05 85 views
1

我遇到了asp.net安全问题。在注销时,我想确保会话被销毁,以便有人不能采用相同的sessionid和auth cookie并编辑那里的cookie,并且服务器仍然响应会话。Asp.net在注销时摆脱服务器上的会话

FormsAuthentication.SignOut(); 
Session.Abandon(); 
Session.RemoveAll(); 
Session.Clear(); 

我试过在不同的命令中使用以下命令,但仍然没有骰子。如果我使用原始的sessionid和Auth cookie,我仍然可以登录。我希望服务器在注销时完全忘记该sessionid。这甚至有可能吗?

回答

3

如果您正在使用FormAuthentication那么你可以使用

FormsAuthentication.SignOut(); 
Session.Abandon(); 

您也可以过期饼干如果使用窗体身份验证,你可能不叫FormsAuth.SignOut如下

// clear authentication cookie 
HttpCookie cookie1 = new HttpCookie(FormsAuthentication.FormsCookieName, ""); 
cookie1.Expires = DateTime.Now.AddYears(-1); 
Response.Cookies.Add(cookie1); 

HttpCookie cookie2 = new HttpCookie("ASP.NET_SessionId", ""); 
cookie2.Expires = DateTime.Now.AddYears(-1); 
Response.Cookies.Add(cookie2); 
+0

对不起,我正在做FormsAuthentication.Signout()以及didn;不提及它 – 2014-09-05 12:55:18

+0

好吧,我做了更多的测试,这确实清除了浏览器的cookie,但不是从服务器的任何想法? – 2014-09-05 16:58:40

0

();

+0

刷新和阅读...我忘了提及 – 2014-09-05 12:56:25