在ASP.NET MVC使用DotNetOpenAuth 3和實施了rememberMe設施...了rememberMe與DotNetOpenId在ASP.NET MVC
我發現,即使我在FormsAuthentication.RedirectFromLoginPage和FormsAuthentication設置createPersistentCookie爲true。 SetAuthCookie用戶不記得一旦ASP.NET會話超時。
如果我檢查cookie,我發現它被標記爲持久性的,並且在將來確實有過期日期方式,我假設因爲我將web.config FORMS超時設置爲幾年。無論如何,如果用戶關閉瀏覽器並重新打開它,則只要ASP會話沒有超時,它們就會被正確記住。
An older post Scott Hanselmann's讓我懷疑是否因爲FormsAuthentication試圖更新身份驗證票證,並且可能在OpenId模型中不起作用,但我在web.config中設置了FORMS SlidingExpiration =「false」認爲強制持久性cookie會使這些東西無關緊要。
我也想知道爲什麼DotNetOpenId MVC示例不包括一個RememberMe複選框 - 也許有一些棘手的事情呢?
另一方面,在StackOverflow中,我看到我在會話中自動記住。想知道他們是否使用DotNetOpenId以外的其他方式來進行OpenId身份驗證。
其他人完成RememberMe成功地在ASP.NET MVC中使用DotNetOpenId?任何技巧?
[更新]
謝謝你試圖幫助,安德魯。原來這不是DotNetOpenId。
我在閱讀this後收集到我的託管服務提供商可能會定期回收應用程序池,導致身份驗證票證加密使用新的機器密鑰。
按前鏈接文章中,我添加的System.Web下,按照我的web.config,它解決了這個問題:
<machineKey
validationKey="(generated a new key to place here)"
decryptionKey="(generated a new key to place here)"
validation="SHA1"
decryption="AES" />
嗨馬丁, StackOverflow確實使用DotNetOpenId。 我認爲你的cookie會話問題可能與OpenID無關,因爲我不認爲DNOI有任何機會干擾你的cookie,並且它不會記錄用戶。我會嘗試對此進行一些研究併發佈一個答案,如果我學到了什麼。 – 2009-04-22 01:53:23