Stackoverflow 与许多其他网站一样使用 OpenId。但是,我很少需要向 Stackoverflow 提供我的 OpenId,而对于其他启用 OpenId 的网站,我必须每天或每周执行一次。
这对我来说意味着 session 的过期是由网站而不是 OpenId 提供商决定的。
查看 ASP MVC 中的 DotNetOpenId 代码,我可以看到,在 OpenId 提供程序成功进行身份验证后,将使用标识符和 bool 参数调用 FormsAuthentication.SetAuthCookie 来确定是否应保留 cookie。
如何强制此 Cookie 过期(比如在 2020 年)而不是默认值。
最佳答案
来自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);
关于asp.net-mvc - 具有长期有效期的 OpenId ASP MVC 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2230922/