Compartilhar via


ClaimsPrincipalPermissionAttribute Classe

Definição

Representa um atributo de segurança usado para atribuir declarativamente verificações de acesso com base na lógica fornecida pela instância ClaimsAuthorizationManager no contexto do aplicativo atual. Essa classe não pode ser herdada.

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
Herança
ClaimsPrincipalPermissionAttribute
Atributos

Exemplos

O exemplo a seguir mostra como proteger um método decorando-o com o ClaimsPrincipalPermissionAttribute atributo . O atributo avaliará se o acesso deve ser concedido à entidade de segurança atual aproveitando a lógica fornecida pela ClaimsAuthorizationManager instância no contexto do aplicativo. Se a entidade de segurança atual não estiver autorizada para a ação especificada no recurso especificado, um SecurityException será gerado; caso contrário, a execução continuará.


//
// 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()
{
}

O XML a seguir mostra a configuração mínima necessária para usar um gerenciador de autorização de declarações personalizado com a ClaimsPrincipalPermissionAttribute classe . Você deve, no mínimo, declarar as system.identityModel seções e system.identityModel.services no elemento e, em seguida, especificar o <configSection> gerenciador de autorização em um <elemento claimsAuthorizationManager> na configuração de identidade padrão. Isso garantirá que o gerenciador de autorização seja referenciado da configuração de federação padrão. Como alternativa, você pode especificar o nome da configuração de identidade sob a qual o gerenciador de autorização é especificado no identityConfigurationName atributo do <elemento federationConfiguration> .

<?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>  

Comentários

O ClaimsPrincipalPermissionAttribute é usado para solicitar declarativamente uma marcar de acesso usando o configuradoClaimsAuthorizationManager.

Você deve especificar um dos SecurityAction valores, um Resource e um Operation em sua ClaimsPrincipalPermissionAttribute declaração. As Resource propriedades e Operation especificam o recurso e a ação para os quais a entidade de segurança atual (Thread.CurrentPrincipal) deve ser autorizada para que a execução prossiga. Se a entidade de segurança atual não estiver autorizada a executar a ação especificada (operação) no recurso especificado, uma SecurityException será gerada.

Importante

A ClaimsPrincipalPermissionAttribute classe usa o gerenciador de autorização de declarações configurado pelo IdentityConfiguration definido na FederatedAuthentication.FederationConfiguration propriedade . Isso é verdadeiro em todos os casos, mesmo em cenários em que WS-Federation não é usado; por exemplo, aplicativos Web ativos (WCF) e aplicativos de console. Você pode especificar o gerenciador de autorização de declarações na configuração ou programaticamente. Para especificar o gerenciador de autorização de declarações em um arquivo de configuração, defina o <elemento claimsAuthorizationManager> em um <elemento identityConfiguration> e verifique se essa configuração de identidade é referenciada pelo <elemento federationConfiguration> carregado pelo runtime (por exemplo, definindo o identityConfigurationName atributo ). Para definir o gerenciador de autorização de declarações programaticamente, forneça um manipulador para o FederatedAuthentication.FederationConfigurationCreated evento.

Construtores

ClaimsPrincipalPermissionAttribute(SecurityAction)

Inicializa uma nova instância da classe ClaimsPrincipalPermissionAttribute.

Propriedades

Action

Obtém ou define uma ação de segurança.

(Herdado de SecurityAttribute)
Operation

Obtém ou define a operação para a qual o a entidade atual deve ser autorizada no recurso especificado.

Resource

Obtém ou define o recurso no qual a entidade de segurança deve ser autorizada a executar a ação especificada (operação).

TypeId

Quando implementado em uma classe derivada, obtém um identificador exclusivo para este Attribute.

(Herdado de Attribute)
Unrestricted

Obtém ou define um valor que indica se a permissão total (irrestrita) para o recurso protegido pelo atributo é declarada.

(Herdado de SecurityAttribute)

Métodos

CreatePermission()

Cria uma nova instância da classe ClaimsPrincipalPermission com base na instância atual.

Equals(Object)

Retorna um valor que indica se essa instância é igual a um objeto especificado.

(Herdado de Attribute)
GetHashCode()

Retorna o código hash para a instância.

(Herdado de Attribute)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
IsDefaultAttribute()

Quando substituído em uma classe derivada, indica se o valor dessa instância é o valor padrão para a classe derivada.

(Herdado de Attribute)
Match(Object)

Quando substituído em uma classe derivada, retorna um valor que indica se essa instância é igual a um objeto especificado.

(Herdado de Attribute)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Implantações explícitas de interface

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de expedição.

(Herdado de Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Recupera as informações de tipo para um objeto, que pode ser usado para obter as informações de tipo para uma interface.

(Herdado de Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Retorna o número de interfaces de informações do tipo que um objeto fornece (0 ou 1).

(Herdado de Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fornece acesso a propriedades e métodos expostos por um objeto.

(Herdado de Attribute)

Aplica-se a

Confira também