我們將在.NET桌面應用程序中使用ORM工具。該工具允許創建持久化類。它自動生成所有數據庫表。.NET ORM和安全性
除了其他數據,我們的系統還需要存儲用戶憑證並提供訪問控制。
問題是,有沒有可能通過ORM進行訪問控制,而無需手動創建數據庫驗證機制?市場上有沒有允許這樣的產品?
我們認爲限制程序本身的訪問權限,但用戶可以直接訪問數據庫,並繞過程序限制。
謝謝。
我們將在.NET桌面應用程序中使用ORM工具。該工具允許創建持久化類。它自動生成所有數據庫表。.NET ORM和安全性
除了其他數據,我們的系統還需要存儲用戶憑證並提供訪問控制。
問題是,有沒有可能通過ORM進行訪問控制,而無需手動創建數據庫驗證機制?市場上有沒有允許這樣的產品?
我們認爲限制程序本身的訪問權限,但用戶可以直接訪問數據庫,並繞過程序限制。
謝謝。
我假定您是指域對象身份驗證,它將篩選備份到UI,而不是數據庫訪問身份驗證。從我嘗試過的ORM中,我沒有發現任何包含域對象的基於角色的認證,這通常是系統其他方面的工作。
你可以查看可用的AOP框架之一,Postsharp是流行的一個,這裏的Postsharp一個例子:
public class Employee
{
public string FirstName;
public string LastName;
[SecuredData("Manager,HR", "HR")]
public decimal Salary;
}
或者你可以建立你裝點你的域對象自己的屬性爲每個人提供一個或多個角色。
看起來很適合使用Active Directory認證。
如果這是一個選項,請看System.DirectoryServices
命名空間。前兩個最重要的課程是DirectoryEntry
和DirectorySearcher
。
不幸的是,這不是使用ORM。但是,這允許您開發自己的框架塊或類似的東西來完成身份驗證,而不必將其存儲在底層數據存儲中。
否則,也許Enterprise Library
和Security Application Block
可以爲你做一些很好的事情,也就是說,只能通過你的類中的XML配置和屬性。
ORM工具完全是客戶端。儘管有些人可能會創建存儲關於ORM本身的元數據的數據庫對象,但他們不能提供任何實際的數據庫安全手段。
如果你想直接限制對數據庫的訪問,而不是依賴你的應用程序做這種驗證(這聽起來像是你的情況),你必須使用數據庫的安全機制;沒有辦法繞過。