C# 是否可以使用AzMan对运行时创建的对象进行基于角色的授权?

C# 是否可以使用AzMan对运行时创建的对象进行基于角色的授权?,c#,authorization,azman,application-role,C#,Authorization,Azman,Application Role,是否可以使用AzMan对运行时创建的对象进行基于角色的授权?如果是,如何做到这一点 例如: 如果在运行时创建了“CustomAlert”类的对象,我将尝试查看是否可以为“CustomAlert”类的不同对象使用不同的规则。如果对象是使用特定用户的身份创建的,则该用户可以获得更多权限,将其视为对象的创建者/所有者。只有创建者/所有者可以修改对象。Azman支持基于角色的安全性,但它仅基于角色,而不基于ACL。如果某个特定用户已登录,则他们具有基于身份的特定权限,但这些权限只是静态值-可以使其应用于

是否可以使用AzMan对运行时创建的对象进行基于角色的授权?如果是,如何做到这一点

例如:


如果在运行时创建了“CustomAlert”类的对象,我将尝试查看是否可以为“CustomAlert”类的不同对象使用不同的规则。如果对象是使用特定用户的身份创建的,则该用户可以获得更多权限,将其视为对象的创建者/所有者。只有创建者/所有者可以修改对象。

Azman支持基于角色的安全性,但它仅基于角色,而不基于ACL。如果某个特定用户已登录,则他们具有基于身份的特定权限,但这些权限只是静态值-可以使其应用于给定类型的所有对象,但根据该类型的特定实例的特定属性没有区别。

Azman支持基于角色的安全性,但它仅基于角色,而不基于ACL。如果某个特定的用户登录,那么他们根据自己是谁拥有特定的权限,但这些权限只是静态值-可以使其应用于给定类型的所有对象,但不会因该类型特定实例的特定属性而有所不同。

当然可以使用AzMan来实现这一点。我已经用这种形式的基于资源和角色的安全性实现了几个应用程序。AzMan实际上非常灵活,我还实现了一个资源层次结构(想想Windows文件系统安全性),具有自定义用户和组,在整个层次结构中完全继承角色,以及在任何级别拒绝操作的能力。要做到这一点,您需要了解AzMan示波器

AzMan作用域允许您为特定资源创建单个角色/操作集。此资源可以是您选择的任何内容,它只是AzMan的字符串标识符。这些角色/操作是对任何应用程序级别分配的角色的补充

我以前实现它的方法是使用对象的id作为作用域名称。为了简单起见,这最好是一个GUID(虽然它确实使MMC应用程序非常混乱),但同样可以使用“类型id”格式,即“Customerlert-1”(在MMC应用程序中更友好)。在azman中执行AccessCheck时,将作用域名称传递给AccessCheck(目前它只接受一个作用域,即使AccessCheck定义允许使用数组)

我将通过一个例子来说明如何做到这一点(对于其他任何挣扎的人来说)

  • 创建操作,例如 CustomerAlertView, 自定义编辑, 在 应用程序级别
  • 创建角色 名为CustomerAllowner的定义 在应用程序级别
  • 全部加上 将操作发送给CustomerOwner 角色
  • 在应用程序中,创建一个作用域 称为“Customerlert-1”
  • 创建一个 上名为“所有者”的角色分配 范围
  • 添加CustomerAllowner “所有者”角色的角色定义 任务
  • 在此所有者角色中,添加 客户/用户“Dave”
  • 现在什么时候 你做一个访问检查,比如说 deleteCustomelert(),您只需 传递服务器的id CustomerAlertDelete操作和 您选择的对象的类型/id 要将其作为范围删除,即。 “客户ERT-1”
  • 对于基于对象属性的访问检查(即锁定某些属性的读/写),我可以想到两种方法。。首先是在对象范围内为每个属性和访问类型分配操作,即PropertyNameGet、PropertyNameSet、PropertyAddressAdd。您可以通过在应用程序级别创建操作并使用任务/角色对常用权限集进行分组来简化此过程。另一种方法是为每个属性(CustomerAlert-1-Name)使用作用域,但这会很混乱,效率也不高,因为在访问给定对象时需要单独加载多个作用域

    您应该记住,您不能明确拒绝AzMan中的操作,只是不在应用程序/作用域中为用户分配角色。这意味着某些类型的资源层次结构(组/用户)等可能更难实现


    如果你需要进一步帮助AzMan,请随时询问。。我已经介绍了大多数情况。

    当然可以使用AzMan来实现这一点。我已经用这种形式的基于资源和角色的安全性实现了几个应用程序。AzMan实际上非常灵活,我还实现了一个资源层次结构(想想Windows文件系统安全性),具有自定义用户和组,在整个层次结构中完全继承角色,以及在任何级别拒绝操作的能力。要做到这一点,您需要了解AzMan示波器

    AzMan作用域允许您为特定资源创建单个角色/操作集。此资源可以是您选择的任何内容,它只是AzMan的字符串标识符。这些角色/操作是对任何应用程序级别分配的角色的补充

    我以前实现它的方法是使用对象的id作为作用域名称。为了简单起见,这最好是一个GUID(虽然它确实使MMC应用程序非常混乱),但同样可以使用“类型id”格式,即“Customerlert-1”(在MMC应用程序中更友好)。在azman中执行AccessCheck时,将作用域名称传递给AccessCheck(目前它只接受一个作用域,即使AccessCheck定义允许使用数组)

    我将通过一个例子来说明如何做到这一点(对于其他任何挣扎的人来说)

  • 创建操作,例如 CustomerAlertView, 自定义编辑, 在 应用程序级别
  • 创建角色 名为CustomerAllowner的定义 在应用程序级别
  • 全部加上 将操作发送给CustomerOwner 角色
  • 在应用程序中,创建一个作用域 称为“Customerlert-1”
  • 创造