【问题标题】:Asp.net get rid of session on server on logoutAsp.net 在注销时摆脱服务器上的会话
【发布时间】:2014-10-30 10:30:12
【问题描述】:

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

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

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

【问题讨论】:

    标签: c# asp.net security session session-cookies


    【解决方案1】:

    如果你使用 FormAuthentication 那么你可以使用

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

    您也可以按如下方式使 cookie 过期

    // 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);
    

    【讨论】:

    • 是的,对不起,我也在做 FormsAuthentication.Signout() 并且没有提到它
    • 好的,我做了更多的测试,这确实清除了浏览器中的 cookie,但没有从服务器中清除任何想法?
    【解决方案2】:

    如果您使用表单身份验证,您可能没有调用 FormsAuth.SignOut();

    【讨论】:

      猜你喜欢
      • 2014-10-30
      • 1970-01-01
      • 2013-11-16
      • 1970-01-01
      • 2012-02-21
      • 2012-02-15
      • 2013-09-01
      • 2010-10-18
      • 2015-07-07
      相关资源
      最近更新 更多