【发布时间】:2017-07-28 20:58:04
【问题描述】:
我在这样的登录操作方法中设置了一个 AuthCookie
FormsAuthentication.SetAuthCookie(username,true);
在 Global.asax 文件中我放了刷新代码,(这将在每个动作方法认证后执行)
protected void Application_PostAuthenticateRequest(Object sender, EventArgs e)
{
string username = FormsAuthentication.Decrypt(Request.Cookies[FormsAuthentication.FormsCookieName].Value).Name;
HttpCookie cookie = FormsAuthentication.GetAuthCookie(username, true);
var ticket = FormsAuthentication.Decrypt(cookie.Value);
var newticket = new FormsAuthenticationTicket(ticket.Version,
ticket.Name,ticket.IssueDate,
ticket.Expiration,true,"new user data",ticket.CookiePath);
cookie.Value = FormsAuthentication.Encrypt(newticket);
cookie.Expires = newticket.Expiration.AddHours(24);
HttpContext.Current.Response.Cookies.Set(cookie);
}
但它不起作用,并且在一小段时间后退出,尽管当我通过浏览器设置检查该 cookie 时,过期时间设置正确。
【问题讨论】: