我想在浏览器关闭时使 FormsAuthentication 的 cookie 过期。 (我希望它像 PHP 会话一样工作)
这是位于模型(不是控制器)中的我的身份验证代码。
模型/Auth.cs
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(
1,
model.UserId,
DateTime.Now,
DateTime.Now.AddDays(1),
true,
model.UserId +" "+reader["lastname"],
FormsAuthentication.FormsCookiePath);
string hash = FormsAuthentication.Encrypt(ticket);
HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, hash);
if (ticket.IsPersistent)
{
cookie.Expires = ticket.Expiration;
}
HttpContext.Current.Response.Cookies.Add(cookie);
网页配置
<authentication mode="Forms">
<forms name="user" timeout="60" loginUrl="~/Auth/login" path="/"></forms>
</authentication>
<authorization>
<deny users="?" />
</authorization>
还有一个问题是,设置cookie超时有2次,
在机票上,
DateTime.Now.AddDays(1),
并在 Web.config 文件中进行身份验证
<forms name="user" timeout="60" loginUrl="~/Auth/login" path="/"></forms>
它们有多大不同,哪一个会影响实际的过期 cookie?
有谁知道,请指教。
谢谢!