2011-01-24 49 views
0

我有一個使用asp.net mvc3的web項目。現在客戶要求提供安全管理功能。以下是此項目的一些背景:建議基於asp.net的web項目的自定義安全管理mvc3

  1. 使用表單身份驗證的公共網站。
  2. 客戶希望自我管理安全(包括角色,用戶,對資源的行爲)。
  3. 用戶是該項目的域模型。
  4. 訪問控制的粒度至少應達到操作級別(當用戶執行未經授權的操作時,將未授權的頁面返回給用戶)。但最好根據用戶的授權更改視圖內容(動態顯示查看頁面上的授權元素)。

我不是很擅長asp.net mvc。我不知道內置的memberprovider和roleprovider是否可以滿足這個需求。但我更願意建立自己的模型提供者(資源類別,動作,角色,組等)來完全控制。但似乎還有其他因素需要關注,如緩存,性能或其他。

有人可以給我一些建議如何實現這個功能,以及如何將它應用到我的項目?更好的一些示例項目。

非常感謝

回答

1

我採取非常的辦法歸結到訪問控制列表是一系列來表示訪問的類型和類型的一系列位值的操作(讀取,插入,修改和刪除)。

整個站點通過使用ajax和json的REST風格API進行填充。每一項功能都包含一系列權限測試(我緩存訪問控制列表)。

示例場景: 用戶(管理員)正在訪問用戶列表。

這就需要對以下快捷鍵和行動,來爲代碼進行計算的執行:

  • 頁面加載:
    • 「/用戶/列表」
  • REST API訪問:
    • 「/用戶/所有者」
    • 「/用戶/ NotOwner」

顯然,這些條件相比,登錄用戶的分配角色和訪問控制權限關聯d到那個角色。

通過訪問列表和權限存儲在數據庫中,用戶可以更改哪些訪問項和動作分配給哪些角色。

因爲你打算給用戶的能力,修改這些協會這將是非常有益的補充說明每個訪問控制項。

祝你好運!

+0

謝謝used2could,描述建議真的很有幫助。所以我認爲你的方法是基於行動的授權嗎?我如何使用此授權控件來呈現動態頁面內容? – 2011-01-25 01:54:24