Stackoverflow使用OpenId和许多其他网站一样。但是,我很少需要将OpenId提供给Stackoverflow,而对于其他支持OpenId的网站,我必须每天或每周进行一次。
这告诉我,会话的到期时间是网站,而不是OpenId提供商。
查看ASP MVC中的DotNetOpenId代码,我可以看到OpenId提供程序成功进行身份验证后,使用标识符和布尔参数调用FormsAuthentication.SetAuthCookie来确定是否应该保留cookie。
如何强制此Cookie过期,比如在2020年,而不是默认值。
答案 0 :(得分:4)
来自MSDN - Explained: Forms Authentication in ASP.NET 2.0:
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1,
"userName",
DateTime.Now,
new DateTime(2020, 01, 01), // value of time out property
false, // Value of IsPersistent property
String.Empty,
FormsAuthentication.FormsCookiePath);
string encryptedTicket = FormsAuthentication.Encrypt(ticket);
HttpCookie authCookie = new HttpCookie(
FormsAuthentication.FormsCookieName,
encryptedTicket);
authCookie.Secure = true;
Response.Cookies.Add(authCookie);
答案 1 :(得分:1)
您可以使用FormsAuthentication.RenewTicketIfOld()
更新故障单。此方法将检查当前故障单是否已过期,如果没有,则延长其过期时间。您可以在每次向您的网站发出请求时调用此方法,这将在用户继续使用您的网站时进一步“过期”到期。