2010-11-06 72 views
0

我有一個ASP.Net 4.0 Web應用程序。我試圖設計一個「記住我14天」的要求。在那段時間之後,我想強制他們重新登錄。ASP.Net記住我功能

所以我的問題是如何做到這一點。我正在考慮創建自己的HttpModule,並將它掛鉤到PostAuthenticateRequest事件中。在這個事件中,我將檢查當前的委託人是否未被正常的FormsAuthenticationModule驗證。如果沒有,我會查看從瀏覽器返回的驗證票證,看它是否包含我的UserData。票據中的我的用戶數據將用於成功驗證身份的密碼。

我的問題:

我得補充說,他們使用正確的每一個響應的密碼?正常的FormsAuthenticationModule會不斷改變發送給瀏覽器的票據,以保持用戶會話的活躍。那麼,哪裏最適合我插入管道的位置,以便將每個響應的持續添加到每個驗證票證中?如果FormsAuthenticationModule已經構建了票據,構建cookie並對其進行加密,那麼是否必須重寫該邏輯並自己完成這些工作?

謝謝

+0

我有一段時間沒有使用內置的Membership對象,但我很確定會有一些屬性。這是一種非常常見的情況。你是否徹底檢查過SDK? – 2010-11-06 00:31:24

回答

0

報價「我的用戶數據中的票據將密碼,他們用於成功進行身份驗證。」 不確定其餘的信息,但不信任客戶端的任何數據,可以修改cookie並將密碼存儲在cookie中是BAD,那麼多用戶系統呢?

+0

嘿克里斯。該Cookie將被加密(http://msdn.microsoft.com/zh-cn/library/system.web.security.formsauthentication.encrypt.aspx)。無論如何,我有什麼選擇?我不想創建一個在14天內過期的驗證票證(沒有密碼)。身份驗證票是ASP.Net用作超時會話的機制,因此他們僅僅意味着到期日期只有30分鐘。假設他們在星期一登錄,星期二我們凍結了他們的帳戶。我不希望他們能夠因票而登陸14天。 – sisdog 2010-11-06 04:33:13

+0

@sis,除非您對每個請求重新進行身份驗證,否則如果他們在14天內沒有關閉瀏覽器,則會遇到同樣的問題(我個人已經打開了超過一個月的選項卡)。如果您正在重新進行身份驗證,那麼您還可以在此期間檢查該帳戶是否未凍結。 – Davy8 2011-03-29 22:38:41