Asp.net mvc 验证cookie不是持久的

Asp.net mvc 验证cookie不是持久的,asp.net-mvc,cookies,forms-authentication,Asp.net Mvc,Cookies,Forms Authentication,我有下面的代码,根据其他stackoverflow的答案,它应该可以工作,但不能。我还缺什么吗 DateTime expiration = DateTime.Now.AddMinutes(30); if (rememberMe) { expiration = DateTime.Now.AddMonths(1); } HttpContext.Current.Response.Cookies.Clear(); var ticket = new FormsAuthenticationTick

我有下面的代码,根据其他stackoverflow的答案,它应该可以工作,但不能。我还缺什么吗

DateTime expiration = DateTime.Now.AddMinutes(30);
if (rememberMe)
{
    expiration = DateTime.Now.AddMonths(1);
}
HttpContext.Current.Response.Cookies.Clear();

var ticket = new FormsAuthenticationTicket(1, email, DateTime.Now, expiration, rememberMe,
guid.ToString(), FormsAuthentication.FormsCookiePath);

string encryptedTicket = FormsAuthentication.Encrypt(ticket);

var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket);
cookie.Expires = ticket.Expiration;
HttpContext.Current.Response.Cookies.Add(cookie);
并在
Application\u AuthenticateRequest

var authCookie = Request.Cookies.Get(FormsAuthentication.FormsCookieName);
if (authCookie == null) return;

var ticket = FormsAuthentication.Decrypt(authCookie.Value);
if (ticket == null) return;
...
和我的web.config条目:

<authentication mode="Forms">
     <forms loginUrl="~/Home/Index" timeout="30" /> <!--  30minutes
</authentication>


1-在asp.net项目的root web.config中,在system.web部分,将身份验证模式设置为“Forms”:

3-对于读取当前身份验证密钥使用:

using System.Web.Security;

FormsAuthentication.SetAuthCookie(userName,false);
var userName=controller.User.Identity.Name;
var userName=controller.User.Identity.Name;