簡體   English   中英

在MVC 4 ASP.NET中將用戶信息保留在自定義成員身份和角色提供者中

[英]Keeping user's Information in Custom membership & role provider in MVC 4 ASP.NET

我正在使用Asp.net MVC 4中的實現自定義成員身份提供程序和角色提供程序進行身份驗證。

我關注了這個博客

這個應用程序非常大,非常敏感。我沒有使用MVC的內置身份驗證,我想實現自己的數據庫架構。

我需要在同一用戶的不同頁面上提供不同的特權。 例如,同一用戶可能在一個頁面上是管理員,而在另一頁面上是訪客,某些用戶可能具有讀/寫角色,而其他用戶則具有只讀角色等。為此,我需要保留用戶信息,例如用戶名,用戶名, user_role和其他個人資料信息,並在每次點擊和網站上的每個頁面上進行檢查。

我的提供者工作正常,我只是有這些問題。

什么是最好的方式(就安全性和CPU處理而言)隨身攜帶這些信息然后進行檢查/比較

  1. 保持會話狀態並檢查所有地方?
  2. 保存在cookie中並檢查所有地方?
  3. 不需要保存/保留,在頁面加載時從db獲取並確定該時間?
  4. 還有其他方法嗎?
  5. 在MVC中我需要進行此檢查的地方,是否已授權該用戶讀取此頁面/部分?(在每個Controller的Index動作中?)
  1. 在MVC中,您檢查所有動作,而不僅僅是Index()。 攻擊者可以按任何順序伸手采取任何行動。
  2. 如果服務器重新啟動工作進程,則會話隨時可能丟失。
  3. 將敏感信息放入Cookie最多是危險的。 您需要使信息防篡改。
  4. 在每次請求時從數據存儲中重新加載角色幾乎與現有角色提供者的工作方式相同。
  5. 您應該真正考慮編寫cuatom MembershipProvider和RoleProvider,然后僅在控制器操作上使用常規的[Authorize()]指令。 這樣一來,您的應用程序將來將更易於管理。

不要對這個深刻的問題感到困惑。 您需要的所有東西都是由Microsoft成員資格提供程序准備的。 您只需要存儲根據您的方案分配的用戶數據和角色即可。 由於我們在Asp.net MVC進行期間有2個名為Katana和Owin的成員資格提供程序。 但是,如果您想實現自己的成員資格提供程序,問題會有所不同,查看以下鏈接可能會有用:

  1. 如何使用ASP.NET MVC4配置自定義成員資格和角色提供程序
  2. ASP.NET MVC 4中的自定義成員資格和角色提供程序
  3. 如何為ASP.NET MVC 2創建自定義成員資格提供程序?
  4. 如何使用ASP.NET MVC4通過外部登錄(如Facebook,Yahoo,Google或其他依賴方帳戶)配置自定義成員資格提供程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM