2014-04-20 44 views
2

自定義成員資格和角色提供的信息,我使用實現自定義的成員資格提供程序和角色提供者在Asp.net MVC 4飼養用戶在MVC 4 ASP.NET

authinticating目的我也跟着this blog

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

我需要在同一用戶的不同頁面上提供不同的權限。例如,同一個用戶可以是一個頁面上的管理員,另一個是guest,有些用戶可能具有讀/寫角色,而其他用戶只具有隻讀等等。爲此,我需要保留用戶的信息,如用戶名,用戶ID, user_role &一些其他配置文件信息,並檢查他們每次點擊和網站上的每一頁。

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

什麼是跟上我這些信息&然後檢查的最佳方式(在安全& CPU處理的期限)/比較它們

  1. 請會話,並檢查無處不在?
  2. 保持Cookie並檢查到處?
  3. 不需要保存/保持,在頁面加載得到數據庫並決定在那個時間?
  4. 有沒有其他可以這樣做?
  5. 在MVC我在哪裏需要有此檢查,或者該用戶authinticated閱讀本APAGE /節OT不?(每個控制器的索引操作?)

回答

0
  1. 在MVC您檢查所有操作,而不僅僅是Index()。攻擊者可以以任何順序觸發任何操作。
  2. 如果服務器重新啓動工作進程,會話可能隨時丟失。
  3. 將敏感信息放入cookie中最好是危險的。您需要使信息防篡改。
  4. 在每個請求中從數據存儲中重新裝入角色幾乎是現有角色提供程序如何執行的。
  5. 您應該考慮編寫一個cuatom MembershipProvider和RoleProvider,然後在控制器操作上簡單使用正常的[Authorize()]指令。這樣你的應用程序在將來更容易管理。
+0

你沒有建議我遵循哪一項?在每個請求中保留會話或從數據存儲中重新加載角色。但最後一個會花費處理時間。 – user3244721

0

不要讓這些深層次的問題困擾自己。所有你需要的東西都由微軟會員提供。您只需根據您的方案存儲分配給他們的用戶數據和角色。由於我們在Asp.net MVC進度期間有兩個成員提供者Katana and Owin。但是,如果你想實現自己的成員提供,問題不同,在看下面的鏈接可能是有用的:

  1. How to configure Custom Membership and Role Provider using ASP.NET MVC4
  2. Custom Membership and Role provider in ASP.NET MVC 4
  3. How do I create a custom membership provider for ASP.NET MVC 2?
  4. How to configure Custom Membership Provider using ASP.NET MVC4 with external login like facebook, yahoo , google or other relying party accounts.