作爲一個用戶,當我看到一個「記住我」複選框時,我希望它記住我 - 不僅僅是當我關閉瀏覽器時,而且當我一週後回到網站時。ASP.NET MVC中Forever Timeout的缺陷?
所以在我的ASP.NET MVC應用程序,我正在考慮以下的web.config值:
<authentication mode="Forms">
<forms defaultUrl="/" loginUrl="/account/login" name=".ASPXAUTH" timeout="50000000" />
</authentication>
我打算也有userIsOnlineTimeWindow =「20」仍然有關於誰在線上體面的統計數據。我還計劃設置一個machineKey,以便在IIS回收時不會啓動用戶。
有關此設置的想法?我最擔心的是它會佔用資源 - 但它會在無狀態的MVC應用程序中嗎?是不是真的與sessionState超時變量相關,而不是認證超時?並且sessionState在MVC中不再相關?我看到了相互矛盾的信息,並試圖找到它的底部。
另外,如果我採取這種方法,我認爲這也應該照顧用戶填寫表單很長時間才提交,他們失去了他們的工作。我已經看到過與此相關的帖子,但我試圖同時解決兩個問題(在查看頁面時保持活力,如果我說「記住我」,還可以保持活躍狀態)
我看到的一個問題是,如果用戶沒有說「記住我」,它仍然會記住他們,直到他們關閉瀏覽器(對我而言,這符合用戶的期望)。另一個問題是我可能需要按照http://scottonwriting.net/sowblog/posts/11167.aspx對IsApproved和IsLockedOut執行額外的檢查。
思考?特別是對系統資源的問題,謝謝。
當你說實際的當前用戶數據,你的意思是與GetUser?這從成員資格數據庫獲取它,而HttpContext.User包括cookie和會話信息,是否正確? – Vince 2010-01-04 14:09:17
是的,從你發佈的鏈接看來,Membership.GetUser()就是我的意思。 – rmac 2010-01-04 16:48:12