asp.net-mvc – 在ASP.NET MVC中使用DotNetOpenId RememberMe

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – 在ASP.NET MVC中使用DotNetOpenId RememberMe前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在ASP.NET MVC中使用DotNetOpenAuth 3并实现一个RememberMe工具…

我发现即使在FormAuthentication.RedirectFromLoginPage和FormsAuthentication.SetAuthCookie中将createPersistentCookie设置为true,一旦ASP.NET会话超时,用户也不会被记住.

如果我检查cookie,我发现它被标记为持久性,并且将来有一个到期日期方式,我认为是因为我将web.config FORMS超时设置为几年.无论如何,如果用户关闭浏览器并重新打开它,它们会被正确记住 – 只要ASP会话没有超时.

Scott Hanselmann的An older post让我想知道是否因为FormsAuthentication尝试更新认证券,也许在OpenId模型中不起作用,但是我已经在web.config中设置了FORMS SlidingExpiration =“false”,反正我认为强制持久的cookie会使这些东西无关紧要.

我也想知道为什么DotNetOpenId MVC示例不包括RememberMe复选框 – 也许有一些棘手的问题?

另一方面,在StackOverflow中,我看到我在会话中自动记住.想知道他们是否使用DotNetOpenId以外的其他方法来进行OpenId身份验证.

任何人在ASP.NET MVC中使用DotNetOpenId成功记住吗?任何技巧?

[更新]

感谢您的帮助,安德鲁.原来这不是关于DotNetOpenId.

在阅读this后,我收集到的是,我的主机提供商可能会定期回收应用程序池,这样就可以使用新的机器密钥进行身份验证加密.

根据上述链接文章,我在Web.Config中的System.Web下添加了以下内容,并解决了以下问题:

<machineKey
    validationKey="(generated a new key to place here)"     
    decryptionKey="(generated a new key to place here)"
    validation="SHA1"
    decryption="AES" />

解决方法

我仍然认为cookie名称应该匹配…但这里还有其他的东西.

只要你在web.config文件中的超时值很大,那么这就好像你说的一样.但是,一旦你缩短了它,你的持久性cookie不会超过超时值.这个论坛话题帮我回答了这个问题:
http://forums.asp.net/p/1010241/1347970.aspx#1347970

看来web.config中的超时会影响所有的cookie.它说认证券持续多久.所有的验证Cookie都有这个“生存时间”超时,无论它们是否“持久”.因此,持久性Cookie和非持久性Cookie之间的区别在于,前者将持续不同的浏览器会话,如果浏览器关闭,后者将会死亡(早期).

那有意义吗?

猜你在找的asp.Net相关文章