.NETORM与安全

.NETORM与安全,.net,authentication,orm,.net,Authentication,Orm,我们将在.NET桌面应用程序中使用ORM工具。该工具允许创建持久类。它自动生成所有数据库表 除了其他数据外,我们的系统还需要存储用户凭据,并提供访问控制 问题是,在不手动创建数据库身份验证机制的情况下,是否有可能通过ORM进行访问控制?市场上有没有允许这样做的产品 我们考虑限制程序本身的访问,但用户可以轻松地直接访问数据库,并绕过程序限制 谢谢。看起来是使用Active Directory身份验证的好选择 如果这是一个选项,请查看名称空间。最重要的两个类是和 不幸的是,这不是使用ORM。但这允许

我们将在.NET桌面应用程序中使用ORM工具。该工具允许创建持久类。它自动生成所有数据库表

除了其他数据外,我们的系统还需要存储用户凭据,并提供访问控制

问题是,在不手动创建数据库身份验证机制的情况下,是否有可能通过ORM进行访问控制?市场上有没有允许这样做的产品

我们考虑限制程序本身的访问,但用户可以轻松地直接访问数据库,并绕过程序限制


谢谢。

看起来是使用Active Directory身份验证的好选择

如果这是一个选项,请查看名称空间。最重要的两个类是和

不幸的是,这不是使用ORM。但这允许您开发自己的框架块或类似的东西来完成身份验证,而无需将其存储在底层数据存储中


否则,可能和可以设法为您做一些好事,也就是说,仅通过类中的XML配置和属性。

看起来是使用Active Directory身份验证的好选择

如果这是一个选项,请查看名称空间。最重要的两个类是和

不幸的是,这不是使用ORM。但这允许您开发自己的框架块或类似的东西来完成身份验证,而无需将其存储在底层数据存储中


否则,可能和可以设法为您做一些好事,也就是说,仅通过类中的XML配置和属性。

我假定您指的是域对象的身份验证,它会过滤回UI,而不是数据库访问身份验证。从我尝试过的ORM中,我没有发现任何包含域对象上基于角色的身份验证的ORM,这通常是系统其他方面的工作

您可以查看一个可用的AoP框架,它是一个流行的框架,下面是一个Postsharp示例:

public class Employee
{
    public string FirstName;
    public string LastName;

    [SecuredData("Manager,HR", "HR")]
    public decimal Salary;
}

或者,您可以构建自己的属性来装饰域对象,为每个域对象提供所需的一个或多个角色。

我假定您指的是域对象的身份验证,它会过滤回UI,而不是数据库访问身份验证。从我尝试过的ORM中,我没有发现任何包含域对象上基于角色的身份验证的ORM,这通常是系统其他方面的工作

您可以查看一个可用的AoP框架,它是一个流行的框架,下面是一个Postsharp示例:

public class Employee
{
    public string FirstName;
    public string LastName;

    [SecuredData("Manager,HR", "HR")]
    public decimal Salary;
}

或者,您可以构建自己的属性来装饰域对象,为每个域对象提供所需的一个或多个角色。

ORM工具完全是客户端的。虽然有些人可能会创建存储关于ORM本身的元数据的数据库对象,但它们不能提供任何实际的数据库安全性方法


如果您想直接限制对数据库的访问,而不依赖于应用程序进行身份验证(听起来您就是这样),那么必须使用数据库的安全机制;没有办法。ORM工具完全是客户端的。虽然有些人可能会创建存储关于ORM本身的元数据的数据库对象,但它们不能提供任何实际的数据库安全性方法

如果您想直接限制对数据库的访问,而不依赖于应用程序进行身份验证(听起来您就是这样),那么必须使用数据库的安全机制;没办法