PrincipalPermission 对象

基于角色的安全性模型支持与代码访问安全性模型中的权限对象类似的权限对象。 此对象(即 PrincipalPermission)表示特定主体类在运行时必须具有的标识和角色。 以命令方式和声明方式进行的安全检查均可使用 PrincipalPermission 类。

若要以命令方式实现 PrincipalPermission 类,请创建该类的一个新实例,并用希望用户在访问代码时具有的名称和角色来初始化该实例。 例如,以下代码以“"Joan"”身份和“"Teller"”角色对此对象的一个新实例进行初始化。

String id = "Joan";
String role = "Teller";
PrincipalPermission principalPerm = new PrincipalPermission(id, role);
Dim id As String = "Joan"
Dim role As String = "Teller"
Dim principalPerm As New PrincipalPermission(id, role)

可使用 PrincipalPermissionAttribute 类以声明方式创建一个类似的权限。 以下代码以声明方式将身份初始化为 "Joan",并将角色初始化为 "Teller"。

[PrincipalPermissionAttribute(SecurityAction.Demand, Name = "Joan", Role = "Teller")]
<PrincipalPermissionAttribute(SecurityAction.Demand, Name := "Joan", Role := "Teller")>

执行安全检查时,为成功完成检查,指定的身份和角色必须匹配。 但是,创建 PrincipalPermission 对象时,可传递一个 null 身份字符串以指示主体的身份可以是任意的。 同样,传递一个 null 角色字符串指示主体可以是任何角色的成员(或根本不属于任何角色)。 对于声明的安全性,可通过省略两种属性之一来获得相同的效果。 例如,下列代码使用 PrincipalPermissionAttribute 以声明方式指示主体可以具有任意名称,但必须具有出纳的角色。

[PrincipalPermissionAttribute(SecurityAction.Demand, Role = "Teller")]
<PrincipalPermissionAttribute(SecurityAction.Demand, Role := "Teller")>

请参见

参考

PrincipalPermission

PrincipalPermissionAttribute

概念

基于角色的安全性

其他资源

安全性的基础概念