gpt4 book ai didi

asp.net - 身份验证 cookie 和 session 状态 cookie 是两个独立的 cookie 有什么好的理由吗?

转载 作者:行者123 更新时间:2023-12-02 05:53:38 25 4
gpt4 key购买 nike

ASP.NET 的 session 状态 cookie 和表单例份验证 cookie 是两个独立的 cookie 有什么好的理由吗?如果我想将它们“绑”在一起怎么办?有可能以一种优雅的方式吗?

现在,我坚持使用以下解决方案,该解决方案有效,但仍然很难看:

[Authorize]
public ActionResult SomeAction(SomeModel model)
{
// The following four lines must be included in *every* controller action
// that requires the user to be authenticated, defeating the purpose of
// having the Authorize attribute.
if (SomeStaticClass.WasSessionStateLost/*?*/) {
FormsAuthentication.SignOut();
return RedirectToAction("Login", "Account");
}

// ...
}

@RPM1984:这就是发生的事情:
[HttpPost]
public ActionResult Login(LoginModel loginModel)
{
if (/* user ok */)
{
// ...
Session["UserID"] = loginModel.UserID;
Session["Password"] = loginModel.Password;
// ...
}
else
{
return View();
}
}

无需太多猜测即可知道 WasSessionStateLost做。

最佳答案

Session != Authentication



session 状态 cookie 在浏览器 session 期间跟踪用户的事件。

表单例份验证 cookie 跟踪用户的 认证给定时间段内的事件,由票证的到期日期以及您是否创建了持久性 cookie 指定(例如“记住我”复选框)。

您不应该触摸 session cookie 本身,它所包含的只是将客户端 session (浏览器)绑定(bind)到服务器的标识符。

如果您需要访问 session ,请使用 HttpContext.Current.Session .

你到底想把什么“绑”在一起?
SomeStaticClass.WasSessionStateLost 是什么意思做?

关于asp.net - 身份验证 cookie 和 session 状态 cookie 是两个独立的 cookie 有什么好的理由吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6066554/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com