为了避免会话固定/劫持,我们注意到在验证后为用户创建新的ASP.Net会话的常见建议。听起来很简单。 当用户进行身份验证时,我们调用Session.Abandon()会话ID cookie Response.Cookies.Add(new HttpCookie(“ASP.NET_SessionId”,“”)然后重定向用户。
但是,我们如何知道用户已登录的新页面?我们无法检查会话变量,因为没有,我们刚开始一个全新的会话。
我发誓,虽然我现在找不到,但是在这个网站上,有人解释了如何放弃会话然后获得下一个会话ID。这样您就可以存储该信息。然后在“起始页”上开始一个新会话,该页面可以根据新ID查找旧会话并验证用户是否已登录。
那么,是否有ASP.Net Session类的主人知道如何做到这一点?
答案 0 :(得分:0)
您可以在用户验证后使用:
我在其他独立应用程序之间传递身份验证“令牌”时做了类似的事情,为用户提供了单点登录的体验。
答案 1 :(得分:0)
我很长时间没有这样做,但我目前的实现是放弃登录页面的PageLoad上的会话。
这样,当用户填写登录凭据并单击登录按钮时,您已经在处理新的会话ID。