【发布时间】:2014-02-05 01:21:07
【问题描述】:
我正在尝试使用以下代码创建表单身份验证 cookie。虽然这适用于持久登录,但当我关闭浏览器会话时,非持久 cookie 不会过期并从浏览器中删除。它仍然存在于浏览器中。
public static void SetAuthenticationCookie(string userName, Role role,
bool isPersistent)
{
string data = role.RoleName;
HttpCookie authCookie = FormsAuthentication.GetAuthCookie(userName,isPersistent);
FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(authCookie.Value);
FormsAuthenticationTicket newticket = new FormsAuthenticationTicket(
ticket.Version, ticket.Name, ticket.IssueDate,ticket.Expiration,
ticket.IsPersistent,data);
authCookie.Value = FormsAuthentication.Encrypt(newticket);
HttpContext.Current.Response.Cookies.Add(authCookie);
}
这是表单身份验证的 web.config 条目
<authentication mode="Forms">
<forms loginUrl="~/Account/Login" cookieless="UseCookies" name=".OneClick"
protection="All" slidingExpiration="true" timeout="43200" />
</authentication>
这里是浏览器的cookie信息截图
这里有什么我遗漏的吗?请告诉我
【问题讨论】:
标签: asp.net-mvc-4 forms-authentication