身份验证后更新 cookie

Update cookie after authentication

我们的是一个网络应用程序。安全团队建议我们在每次授权升级时更改 cookie。

因此,我想在身份验证后更新客户端 cookie。我使用了以下代码:

  System.Web.HttpCookie cookie = Request.Cookies["ASP.NET_SessionId"];
  System.Web.HttpCookie dummyCookie = new System.Web.HttpCookie("SessionId");
  cookie.Value = dummyCookie.Value;
 Response.Cookies.Add(cookie);

问题是 cookie 更新后,用户再次被视为未经身份验证的用户。

提前致谢。

我已经像下面这样在我的项目中处理这个问题。

当用户浏览应用程序登录页面时。我正在使用页面加载中的以下代码删除会话 cookie 中的 sessionid。

if(!IsPostBack)
{
            HttpContext.Current.Session.Clear();
            HttpContext.Current.Session.Abandon();
            HttpContext.Current.Session.RemoveAll();
            Response.Cookies.Add(new HttpCookie("ASP.NET_SessionId", ""));
}

以上代码会清空session cookie中的sessionid。现在当用户输入适当的凭据时 asp.net 将自动创建新的会话 ID,因此浏览器将在成功验证后获得新的会话。如果用户输入了错误的凭据,然后使用上面的代码,我将再次重置 sessionid,以便在成功验证后自动生成新的 sessionid。

在我的项目中实施上述实施后,安全工具不再显示会话固定问题。希望对您有所帮助。