C# 删除ASP.net_会话ID时,ASP.net表单身份验证将被删除 上下文
我正在尝试实现一个“记住我”的功能 我修改了身份验证操作(控制器方法)中的代码,以便在选中“记住我”时将身份验证cookie设置为持久性 这是我的登录操作C# 删除ASP.net_会话ID时,ASP.net表单身份验证将被删除 上下文,c#,asp.net,asp.net-mvc,asp.net-mvc-4,forms-authentication,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 4,Forms Authentication,我正在尝试实现一个“记住我”的功能 我修改了身份验证操作(控制器方法)中的代码,以便在选中“记住我”时将身份验证cookie设置为持久性 这是我的登录操作 [HttpPost] [ValidateAntiForgeryToken] public ActionResult Login(LoginModel model) { // Code to validate the credentials... FormsAuthentication.SetAuthCookie(Us
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Login(LoginModel model)
{
// Code to validate the credentials...
FormsAuthentication.SetAuthCookie(UserName, model.RememberMe);
// Code to redirect to URL...
}
下面是web.config中的代码
<system.web>
<authentication mode="Forms">
<forms name=".ASPXFORMSAUTH"
loginUrl="~/Home/Login"
timeout="1440"
slidingExpiration="true" />
</authentication>
</system.web>
它将会话cookie转换为持久cookie,然后在关闭浏览器时,sessionId和表单auth cookie都被保留。因此,当我再次打开浏览器时,我可以在连接到我的帐户的同时继续浏览
我的问题是。。。
我想我的问题是为什么即使我的表单验证cookie是持久的,但在删除我的会话ID cookie时仍会删除我的表单验证cookie?
如果我将SessionId cookie设置为persistent,则不会删除forms auth cookie(可能是因为SessionId cookie未被删除)
从我能找到的所有文档来看,这两个cookie不应该链接。甚至有博客帖子建议把一个ID放在另一个里面,以便能够在代码的逻辑中连接它们。但我不这么做。所以我不明白它们在我的应用程序中是如何相互影响的
HttpCookie aspSessionCookie = new HttpCookie("ASP.NET_SessionId", Session.SessionID);
if (rememberMe)
aspSessionCookie.Expires = DateTime.Now.AddDays(1);
Response.Cookies.Add(aspSessionCookie);