C# 删除ASP.net_会话ID时,ASP.net表单身份验证将被删除 上下文

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

我正在尝试实现一个“记住我”的功能

我修改了身份验证操作(控制器方法)中的代码,以便在选中“记住我”时将身份验证cookie设置为持久性

这是我的登录操作

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