Asp.net mvc 验证cookie不是持久的
我有下面的代码,根据其他stackoverflow的答案,它应该可以工作,但不能。我还缺什么吗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
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;