PrincipalPermissionAttribute 类

定义

允许使用声明性安全性将安全操作 PrincipalPermission 应用于代码。 此类不能被继承。

public ref class PrincipalPermissionAttribute sealed : System::Security::Permissions::CodeAccessSecurityAttribute
[System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Method, AllowMultiple=true, Inherited=false)]
[System.Serializable]
public sealed class PrincipalPermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute
[System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Method, AllowMultiple=true, Inherited=false)]
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class PrincipalPermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute
[<System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Method, AllowMultiple=true, Inherited=false)>]
[<System.Serializable>]
type PrincipalPermissionAttribute = class
    inherit CodeAccessSecurityAttribute
[<System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Method, AllowMultiple=true, Inherited=false)>]
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type PrincipalPermissionAttribute = class
    inherit CodeAccessSecurityAttribute
Public NotInheritable Class PrincipalPermissionAttribute
Inherits CodeAccessSecurityAttribute
继承
属性

注解

Caution

代码访问安全性(CAS)已在 .NET Framework 和 .NET 的所有版本中弃用。 如果使用与 CAS 相关的 API,最新版本的 .NET 不会遵循 CAS 注释,并会生成错误。 开发人员应寻求完成安全任务的替代方法。

PrincipalPermissionAttribute 可用于以声明方式要求运行代码的用户属于指定角色或已经过身份验证。 使用 Unrestricted 创建一个 PrincipalPermissionAuthenticatedtrue 设置为 NameRole 设置为 null

允许的声明范围取决于所使用的 SecurityActionPrincipalPermissionAttribute 不能在程序集级别应用。

安全属性声明的安全信息存储在属性目标的元数据中,并在运行时由系统访问。 安全属性仅用于声明性安全性。 为了获得强制性安全性,请使用相应的权限类。

Important

在使用此类要求主体权限之前,必须将当前应用程序域的主体策略设置为枚举值 WindowsPrincipal。 默认情况下,主体策略设置为 UnauthenticatedPrincipal。 如果未将主体策略 WindowsPrincipal设置为,则对主体权限的需求将失败。 在需要主体权限之前,应执行以下代码: AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal).

构造函数

名称 说明
PrincipalPermissionAttribute(SecurityAction)

用指定的PrincipalPermissionAttribute值初始化类的新实例SecurityAction

属性

名称 说明
Action

获取或设置安全性操作。

(继承自 SecurityAttribute)
Authenticated

获取或设置一个值,该值指示当前主体是否已由基础基于角色的安全提供程序进行身份验证。

Name

获取或设置与当前主体关联的标识的名称。

Role

获取或设置指定安全角色的成员身份。

TypeId

在派生类中实现时,获取此 Attribute的唯一标识符。

(继承自 Attribute)
Unrestricted

获取或设置一个值,该值指示是否声明了对受属性保护的资源的完整(不受限制)权限。

(继承自 SecurityAttribute)

方法

名称 说明
CreatePermission()

创建并返回一个新 PrincipalPermission

Equals(Object)

返回一个值,该值指示此实例是否等于指定对象。

(继承自 Attribute)
GetHashCode()

返回此实例的哈希代码。

(继承自 Attribute)
GetType()

获取当前实例的 Type

(继承自 Object)
IsDefaultAttribute()

在派生类中重写时,指示此实例的值是否为派生类的默认值。

(继承自 Attribute)
Match(Object)

在派生类中重写时,返回一个值,该值指示此实例是否等于指定对象。

(继承自 Attribute)
MemberwiseClone()

创建当前 Object的浅表副本。

(继承自 Object)
ToString()

返回一个表示当前对象的字符串。

(继承自 Object)

显式接口实现

名称 说明
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

将一组名称映射为对应的一组调度标识符。

(继承自 Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

检索对象的类型信息,该信息可用于获取接口的类型信息。

(继承自 Attribute)
_Attribute.GetTypeInfoCount(UInt32)

检索对象提供的类型信息接口的数量(0 或 1)。

(继承自 Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

提供对对象公开的属性和方法的访问。

(继承自 Attribute)

适用于

另请参阅