FormsAuthenticationTicket登录验证及票据和cookie过期

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FormsAuthenticationTicket登录验证及票据和cookie过期相关的知识,希望对你有一定的参考价值。

1、登录添加:

ticket = new FormsAuthenticationTicket(
1,
us.RealName,
DateTime.Now,
DateTime.Now.AddMinutes(1),
true, //票据是否持久性,若为false,设定时间到后票据过期,若为true,票据持久有效,设定时间无效。当设定为true时只是票据持久,但cookie并不是持久,还有根据需要设定cookie的Expires
us.Roles,
"/"
);

var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, FormsAuthentication.Encrypt(ticket));
cookie.HttpOnly = true;
HttpContext.Response.Cookies.Add(cookie);

2、配置文件

<authentication mode="Forms">
<forms name=".ASPXAUTH" loginUrl="~/Users/Login" defaultUrl="~/Home/Index" protection="All" timeout="30" path="/" requireSSL="false" slidingExpiration="true" enableCrossAppRedirects="false" cookieless="UseDeviceProfile" domain="" />
</authentication>

slidingExpiration="true"时,在浏览器不超过timeout="30"设定的时间时,将重新更新cookie过期时间,也就是在这个时间内没有访问服务器,那么cookie会过期,若有访问服务器,那么cookie期限将从新设为这个时间。

3、以上两条,第一条,票据是持久的,第二条,cookie是滑动的,配合实现很好的登录时效性控制。

 

以上是关于FormsAuthenticationTicket登录验证及票据和cookie过期的主要内容,如果未能解决你的问题,请参考以下文章

FormsAuthenticationTicket登录验证及票据和cookie过期

将 WebAPI JWT 访问令牌作为加密的 FormsAuthenticationTicket 存储在 Response.Cookies 中是不是安全(在 asp.net mvc 中)

关于ASP.NET MVC的权限认证的一些总结