2011-04-06 116 views
0

我希望在ASP.NET MVC應用程序中保護單個(動態)頁面。ASP.NET MVC頁面上的簡單密碼保護

我不想使用全面的身份驗證系統 - 我們已經在爲網站的管理員使用表單身份驗證。相反,這是爲了讓我們可以向特定用戶發送帶有密碼的頁面鏈接。

我目前處理的方式是在提交有效密碼時,我們創建一個加密的cookie,其中包含頁面標識(Guid)及其會話標識並將其重定向到頁面。在我們的「頁面」控制器操作中,我們然後驗證這個cookie。

所以第一個問題,這是最好的(最安全的)方法(除了使用表單身份驗證)?

第二個問題,我可以讀取Forms Authentication用來執行加密的機器密鑰,或者更好地使用FormsAuthentication來加密cookie(我可以看到的唯一的重載是需要FormsAuthenticationTicket的機器密鑰)?

因爲我們總是在部署之前生成一個新的機器密鑰,所以我們所有的加密使用相同的密鑰會更好。

[更新]

關於如何訪問本機鍵,我發現我的答案在http://rich-rogers.com/archive/asp.net-c-sharp-encrypt-hash-using-machinekey-values

[更新2]

問這個問題後,我意識到,因爲我需要保持他們有權訪問的頁面列表,我可能會更好,只是將它們存儲在當前會話中。我可以存儲具有失效日期的安全令牌列表。由於我已經有了一個包裝會話,所以這應該很容易進行單元測試。

回答