2011-09-14 26 views
3

我們應該在哪裏將ACL應用到我們的應用程序中?ASP.NET中的ACL MVC

我們有以下結構(簡化)現有的ASP.NET MVC應用程序:

  • 數據
  • 業務邏輯
  • 視圖模型
  • 控制器
  • 意見

它目前使用角色提供者模型,但我們被要求提供行級權限和功能。從我所做的閱讀中,這往往被稱爲ACL - 訪問控制列表,因爲它遠離角色提供者模型 - 用戶對於實體的每個實例可能具有不同的功能。

正如我所看到的那樣,需求有兩個部分 - 用戶根據授予的訪問檢索實體子集的能力,以及他們能夠在訪問的實體上執行的功能。

數據訪問可能需要儘可能靠近數據層完成 - 它會更安全並且對性能影響較小。我想盡管我們不想檢查用戶此時的功能級別。我們應該在BL層還是在控制器動作中這樣做,類似於我們目前用角色裝飾動作方法的方式。

有沒有一個現有的框架或產品可以幫助解決這個問題?我們正在關注Azman和SQLAzman--對於SQL Server/Entity Framework堆棧還有其他人嗎?

+0

您正在使用什麼數據庫?它是否提供行級權限? – Oded

+0

這是SQL服務器 – conradj

回答