我們應該在哪裏將ACL應用到我們的應用程序中?ASP.NET中的ACL MVC
我們有以下結構(簡化)現有的ASP.NET MVC應用程序:
- 數據
- 庫
- 業務邏輯
- 視圖模型
- 控制器
- 意見
它目前使用角色提供者模型,但我們被要求提供行級權限和功能。從我所做的閱讀中,這往往被稱爲ACL - 訪問控制列表,因爲它遠離角色提供者模型 - 用戶對於實體的每個實例可能具有不同的功能。
正如我所看到的那樣,需求有兩個部分 - 用戶根據授予的訪問檢索實體子集的能力,以及他們能夠在訪問的實體上執行的功能。
數據訪問可能需要儘可能靠近數據層完成 - 它會更安全並且對性能影響較小。我想盡管我們不想檢查用戶此時的功能級別。我們應該在BL層還是在控制器動作中這樣做,類似於我們目前用角色裝飾動作方法的方式。
有沒有一個現有的框架或產品可以幫助解決這個問題?我們正在關注Azman和SQLAzman--對於SQL Server/Entity Framework堆棧還有其他人嗎?
您正在使用什麼數據庫?它是否提供行級權限? – Oded
這是SQL服務器 – conradj