ClaimsPrincipalPermissionAttribute Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
- 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) |