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 ClaimsAuthorizationManager instância no contexto atual da aplicação. Esta 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 seguinte mostra como proteger um método decorando-o com o ClaimsPrincipalPermissionAttribute atributo. O atributo avaliará se o acesso deve ser concedido ao principal atual, aproveitando a lógica fornecida pela ClaimsAuthorizationManager instância no contexto da aplicação. Se o principal atual não estiver autorizado para a ação especificada sobre o recurso especificado, um SecurityException é lançado; caso contrário, a execução prossegue.


//
// 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 seguinte mostra a configuração mínima necessária para usar um gestor personalizado de autorização de reclamações com a ClaimsPrincipalPermissionAttribute classe. Deve, no mínimo, declarar tanto as secções como system.identityModelsystem.identityModel.services as do <configSection> elemento e depois especificar o seu gestor de autorizações num <elemento claimsAuthorizationManager> na configuração de identidade predefinida. Isto garantirá que o seu gestor de autorizações é referenciado a partir da configuração padrão da federação. Em alternativa, pode especificar o nome da configuração de identidade sob a qual o seu gestor 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>

Observações

O ClaimsPrincipalPermissionAttribute é usado para solicitar declarativamente uma verificação de acesso usando a configuração ClaimsAuthorizationManager.

Deve especificar um dos SecurityAction valores, a Resource e an Operation , na sua ClaimsPrincipalPermissionAttribute declaração. As Resource propriedades e Operation especificam o recurso e a ação para os quais o principal atual (Thread.CurrentPrincipal) deve ser autorizado para que a execução prossiga. Se o principal atual não estiver autorizado a realizar a ação (operação) especificada sobre o recurso especificado, um SecurityException é lançado.

Importante

A ClaimsPrincipalPermissionAttribute classe utiliza o gestor de autorização de reclamações configurado por , IdentityConfiguration que é definido sob a FederatedAuthentication.FederationConfiguration propriedade. Isto é verdade em todos os casos, mesmo em situações em que WS-Federation não é utilizado; por exemplo, aplicações Web ativas (WCF) e aplicações de consola. Pode especificar o gestor de autorização de sinistros, seja em configuração ou programaticamente. Para especificar o gestor de autorização de reclamações num ficheiro de configuração, defina o <elemento claimsAuthorizationManager> sob um <elemento identityConfiguration> e assegure que esta configuração de identidade é referenciada pelo <elemento federationConfiguration> que é carregado pelo tempo de execução (por exemplo, definindo o identityConfigurationName atributo). Para definir programaticamente o gestor de autorização de sinistros, forneça um gestor para o FederatedAuthentication.FederationConfigurationCreated evento.

Construtores

Name Description
ClaimsPrincipalPermissionAttribute(SecurityAction)

Inicializa uma nova instância da ClaimsPrincipalPermissionAttribute classe.

Propriedades

Name Description
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 principal atual deve ser autorizado no recurso especificado.

Resource

Obtém ou define o recurso sobre o qual o principal deve ser autorizado a realizar a ação (operação) especificada.

TypeId

Quando implementado numa classe derivada, obtém um identificador único para esta Attribute.

(Herdado de Attribute)
Unrestricted

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

(Herdado de SecurityAttribute)

Métodos

Name Description
CreatePermission()

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

Equals(Object)

Devolve um valor que indica se esta instância é igual a um objeto especificado.

(Herdado de Attribute)
GetHashCode()

Devolve o código de hash para esta instância.

(Herdado de Attribute)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
IsDefaultAttribute()

Quando sobrescrito numa classe derivada, indica se o valor desta instância é o valor padrão para a classe derivada.

(Herdado de Attribute)
Match(Object)

Quando sobrescrito numa classe derivada, devolve um valor que indica se esta instância é igual a um objeto especificado.

(Herdado de Attribute)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)

Implementações de Interface Explícita

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

Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de despacho.

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

Recupera a informação de tipo de um objeto, que pode ser usada para obter a informação de tipo para uma interface.

(Herdado de Attribute)
_Attribute.GetTypeInfoCount(UInt32)

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

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

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

(Herdado de Attribute)

Aplica-se a

Ver também