具有长期有效期的 OpenId ASP MVC 身份验证
Stackoverflow 与许多其他网站一样使用 OpenId。然而,我很少需要向 Stackoverflow 提供我的 OpenId,而对于其他启用 OpenId 的网站,我必须每天或每周执行一次。
这对我来说意味着会话的过期是由网站而不是 OpenId 提供商决定的。
查看 ASP MVC 中的 DotNetOpenId 代码,我可以看到,在 OpenId 提供程序成功进行身份验证后,将使用标识符和布尔参数调用 FormsAuthentication.SetAuthCookie 来确定是否应保留 cookie。
我怎样才能强制这个 cookie 过期,比如说在 2020 年而不是默认值。
Stackoverflow uses OpenId as many other websites. However, I rarely need to provide my OpenId to Stackoverflow while with other OpenId enabled websites, I have to do it once a day or week.
This suggests to me that the expiry of the session is with the website and not the OpenId provider.
Looking at the DotNetOpenId code in ASP MVC, I can see that after a successful authentication by the OpenId provider FormsAuthentication.SetAuthCookie is called with the identifier and a boolean parameter to determine if the cookie should be persisted.
How can I force this cookie to expire, say in 2020 instead of whatever the default value is.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
来自 MSDN - 解释:ASP.NET 2.0 中的表单身份验证:
From MSDN - Explained: Forms Authentication in ASP.NET 2.0:
您可以使用
FormsAuthentication.RenewTicketIfOld( )
更新票证。此方法将检查当前票证是否已过期,如果没有,则延长其过期时间。您可以对站点的每个请求调用此方法,随着用户继续使用您的站点,这将在将来进一步“滑动”过期时间。You can use
FormsAuthentication.RenewTicketIfOld()
to update the ticket. This method would check if the current ticket has expired and if not, to extend its expiration. You can call this method on every request to your site, which will "slide" th expiration further in future as the user keeps using your site.