如何在ASP.NET网站上实现“记住我”功能是最佳方法?
是否应使用自定义cookie,还是有更简单的方法?
如何在ASP.NET网站上实现“记住我”功能是最佳方法?
是否应使用自定义cookie,还是有更简单的方法?
您是否正在使用ASP.NET提供的内置Authenication
服务?如果是,那么这很容易。
public void SetAuthenticationCookie(LoginView loginModel)
{
if (!loginModel.RememberMe)
{
FormsAuthentication.SetAuthCookie(loginModel.Email, false);
return;
}
const int timeout = 2880; // Timeout is in minutes, 525600 = 365 days; 1 day = 1440.
var ticket = new FormsAuthenticationTicket(loginModel.Email, loginModel.RememberMe, timeout);
//ticket.
string encrypted = FormsAuthentication.Encrypt(ticket);
var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encrypted)
{
Expires = System.DateTime.Now.AddMinutes(timeout),
HttpOnly = true
};
HttpContext.Current.Response.Cookies.Add(cookie);
}