ClaimsPrincipalPermissionAttribute 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示安全属性,其用于声明性分配访问检查,依据是当前应用程序上下文中的 ClaimsAuthorizationManager 实例提供的逻辑。 此类不能被继承。
public ref class ClaimsPrincipalPermissionAttribute sealed : System::Security::Permissions::CodeAccessSecurityAttribute
[System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Method | System.AttributeTargets.Property, AllowMultiple=true)]
public sealed class ClaimsPrincipalPermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute
[<System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Method | System.AttributeTargets.Property, AllowMultiple=true)>]
type ClaimsPrincipalPermissionAttribute = class
inherit CodeAccessSecurityAttribute
Public NotInheritable Class ClaimsPrincipalPermissionAttribute
Inherits CodeAccessSecurityAttribute
- 继承
- 属性
示例
以下示例演示如何通过使用 属性修饰方法来保护方法 ClaimsPrincipalPermissionAttribute 。 特性将评估是否应通过利用实例在应用程序上下文中提供的 ClaimsAuthorizationManager 逻辑向当前主体授予访问权限。 如果当前主体未获得对指定资源执行的指定操作的授权, SecurityException 则会引发 ;否则,将继续执行。
//
// Declarative access check using the permission class. The caller must satisfy both demands.
//
[ClaimsPrincipalPermission(SecurityAction.Demand, Resource = "resource", Operation = "action")]
[ClaimsPrincipalPermission(SecurityAction.Demand, Resource = "resource1", Operation = "action1")]
static void ProtectedMethod()
{
}
以下 XML 显示了对 类使用自定义声明授权管理器 ClaimsPrincipalPermissionAttribute 所需的最低配置。 至少必须在 元素中声明 system.identityModel
和 system.identityModel.services
节,然后在默认标识配置下的 <claimsAuthorizationManager> 元素中<configSection>
指定授权管理器。 这将确保从默认联合配置引用授权管理器。 或者,可以指定在 federationConfiguration> 元素的 属性中指定授权管理器所依据的<标识配置的名称。identityConfigurationName
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<!-- WIF configuration sections -->
<section name="system.identityModel" type="System.IdentityModel.Configuration.SystemIdentityModelSection, System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<section name="system.identityModel.services" type="System.IdentityModel.Services.Configuration.SystemIdentityModelServicesSection, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<system.identityModel>
<identityConfiguration>
<claimsAuthorizationManager type ="MyClaimsAuthorizationManager.MyClaimsAuthorizationManager, MyClaimsAuthorizationManager"/>
</identityConfiguration>
</system.identityModel>
</configuration>
注解
ClaimsPrincipalPermissionAttribute用于使用配置的 ClaimsAuthorizationManager以声明方式请求访问检查。
必须在声明中指定值之SecurityAction一和 Operation
Resource
ClaimsPrincipalPermissionAttribute 。 Resource
和 Operation
属性指定必须授权当前主体 (Thread.CurrentPrincipal) 才能继续执行的资源和操作。 如果当前主体无权对指定资源执行指定操作 (操作) , SecurityException 则会引发 。
重要
类ClaimsPrincipalPermissionAttribute使用 由 在 属性下FederatedAuthentication.FederationConfiguration设置的 IdentityConfiguration 配置的声明授权管理器。 这在所有情况下都是如此,即使在不使用 WS-Federation 的情况下也是如此;例如,活动 (WCF) Web 应用程序和控制台应用程序。 可以在配置中或以编程方式指定声明授权管理器。 若要在配置文件中指定声明授权管理器,请在 identityConfiguration> 元素下<设置 <claimsAuthorizationManager> 元素,并确保运行时 (加载的 federationConfiguration> 元素引用<此标识配置,例如,通过将 属性设置为 identityConfigurationName
) 。 若要以编程方式设置声明授权管理器,请提供 FederatedAuthentication.FederationConfigurationCreated 事件的处理程序。
构造函数
ClaimsPrincipalPermissionAttribute(SecurityAction) |
初始化 ClaimsPrincipalPermissionAttribute 类的新实例。 |
属性
Action |
获取或设置安全性操作。 (继承自 SecurityAttribute) |
Operation |
获取或设置其中应对当前主体授予对指定资源的权限的操作。 |
Resource |
获取或设置其上应对主体授予权限以执行指定操作的资源。 |
TypeId |
在派生类中实现时,获取此 Attribute 的唯一标识符。 (继承自 Attribute) |
Unrestricted |
获取或设置一个值,该值指示是否声明了对受该特性保护的资源有完全(无限制的)权限。 (继承自 SecurityAttribute) |
方法
CreatePermission() |
创建基于当前实例 ClaimsPrincipalPermission 类的新实例。 |
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) |