当前位置: 首页 > 编程语言 > C#

FormsAuthenticationTicketExpired过期分享

时间:2023-04-10 16:52:27 C#

FormsAuthenticationTicketExpired过期这是我在登录成功时调用的函数。(我对这个FormAuthentication很陌生)publicstaticvoidCreateLoginCookie(Useru){FormsAuthenticationTicketticket=newFormsAuthenticationTicket(u.Id.ToString(),true,9*60);字符串encryptedTicket=FormsAuthentication.Encrypt(ticket);HttpCookiecookie=newHttpCookie(FormsAuthentication.FormsCookieName,encryptedTicket){Expires=DateTime.Now.AddHours(9)};HttpContext.Current.Response.Cookies.Add(cookie);status9小时,但它不起作用。他们会在一两个小时后退出。有人能告诉我我错过了什么吗?可能由于应用程序池回收而发生。身份验证cookie使用机器密钥加密。似乎默认情况下,这些机器密钥是在每次重新启动应用程序池时生成的。然后,你的应用程序空闲一段时间(在应用程序池设置中配置)你的应用程序池将被回收。所以你需要生成静态机器密钥。这个问题与您的问题有关:CanFormsAuthenticationTicketsurviveapppoolrecycling?您是否考虑过修改web.config文件中的超时时间?enableCrossAppRedirects="[true|false]"cookieless="[UseUri|UseCookies|AutoDetect|UseDeviceProfile]"domain="domainname"ticketCompatibilityMode="[Framework20|Framework40]">...我用过这个片段,它适用于我有用,看看这个:以上就是C#学习教程的全部内容:FormsAuthenticationTicket过期过期了。如果对大家有用,需要详细了解C#学习教程,希望大家多多关注—FormsAuthenticationTicketTicket=newFormsAuthenticationTicket(1,//Ticket版本用户名,//与ticket关联的用户名DateTime.Now,//发布日期/时间DateTime.Now.AddDays(1),//到期日期/时间isPersistent,//对于持久性用户cookiedataStore,“true”,//用户数据,在本例中为角色FormsAuthentication.FormsCookiePath);//路径cookie有效//使用机器密钥加密cookie以实现安全传输stringHash=FormsAuthentication.Encrypt(Ticket);HttpCookieCookie=newHttpCookie(FormsAuthentication.FormsCookieName,Hash);//设置t如果(Ticket.IsPersistent)Cookie.Expires=Ticket.Expiration;则cookie的过期时间到票证过期时间;