Asp.net
ASP.NET MVC 中的角色記憶體策略
我們有一個 ASP.NET MVC 應用程序,為此我們開發了我們自己的自定義 RoleProvider 類。如果沒有記憶體,它將訪問每個請求的數據儲存區 - 不好。我們可以找到的唯一記憶體選項是(在 web.config 中)通過儲存在客戶端電腦上的 cookie。我的兩個問題是:
- 這是否安全(即使啟用了加密)?
- cookie 資訊是否會隨每個 Web 請求一起傳輸 - 因此,與每次訪問數據儲存相比,可能會降低應用程序的速度嗎?
有人有替代路線嗎?我知道在 Session 中記憶體這些資訊也很糟糕?
如果您已經開發了自己的自定義 RoleProvider 類,您可以進行自己的數據記憶體,例如使用 ASP.NET 記憶體。這比使用 Session 作為記憶體更靈活,因為它甚至可以在沒有啟用會話狀態的頁面上工作。
我不同意 Wyatt Barnett 的評論:
使用 Session 的缺點……事實上 Session 儲存非常違反並且不是特別可靠
記憶體(無論是 Session、ASP.NET 記憶體還是其他東西)具有易失性是可以的 - 您只需要在需要時重新填充它。
要回答您的問題:
- 它與用於加密 cookie 的加密一樣安全。如果您依賴 FormsAuthentication,它的安全性必須不亞於 Forms Authentication 票證。
- cookie 將隨每個請求一起傳輸。因此,如果使用者可以擁有非常多的角色,並且可能超過瀏覽器支持的最大 cookie 大小,則可能會影響性能。