ClaimsPrincipalPermissionAttribute Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Representa un atributo de seguridad utilizado para asignar mediante declaración comprobaciones de acceso en función de la lógica proporcionada por la instancia de ClaimsAuthorizationManager en el contexto de aplicación actual. Esta clase no puede heredarse.
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
- Herencia
- Atributos
Ejemplos
En el ejemplo siguiente se muestra cómo proteger un método decorando con el ClaimsPrincipalPermissionAttribute atributo . El atributo evaluará si se debe conceder acceso a la entidad de seguridad actual aprovechando la lógica proporcionada por la ClaimsAuthorizationManager instancia en el contexto de la aplicación. Si la entidad de seguridad actual no está autorizada para la acción especificada en el recurso especificado, se produce una SecurityException excepción ; de lo contrario, la ejecución continúa.
//
// 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()
{
}
El siguiente XML muestra la configuración mínima necesaria para usar un administrador de autorización de notificaciones personalizado con la ClaimsPrincipalPermissionAttribute clase . Debe declarar, como mínimo, las system.identityModel
secciones y system.identityModel.services
del <configSection>
elemento y, a continuación, especificar el administrador de autorización en un <elemento claimsAuthorizationManager> en la configuración de identidad predeterminada. Esto garantizará que se haga referencia al administrador de autorización desde la configuración de federación predeterminada. Como alternativa, puede especificar el nombre de la configuración de identidad en la que se especifica el administrador de autorización en el identityConfigurationName
atributo del <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>
Comentarios
ClaimsPrincipalPermissionAttribute se usa para solicitar mediante declaración una comprobación de acceso mediante el configuradoClaimsAuthorizationManager.
Debe especificar uno de los SecurityAction valores , a Resource
y en Operation
la ClaimsPrincipalPermissionAttribute declaración . Las Resource
propiedades y Operation
especifican el recurso y la acción para los que se debe autorizar la entidad de seguridad actual (Thread.CurrentPrincipal) para que continúe la ejecución. Si la entidad de seguridad actual no está autorizada para realizar la acción especificada (operación) en el recurso especificado, se produce una SecurityException excepción .
Importante
La ClaimsPrincipalPermissionAttribute clase usa el administrador de autorización de notificaciones configurado por el IdentityConfiguration que se establece en la FederatedAuthentication.FederationConfiguration propiedad . Esto es cierto en todos los casos, incluso en escenarios en los que no se utiliza WS-Federation; por ejemplo, aplicaciones web activas (WCF) y aplicaciones de consola. Puede especificar el administrador de autorización de notificaciones en la configuración o mediante programación. Para especificar el administrador de autorización de notificaciones en un archivo de configuración, establezca el <elemento claimsAuthorizationManager> en un <elemento identityConfiguration> y asegúrese de que el <elemento federationConfiguration> al que hace referencia esta configuración de identidad (por ejemplo, estableciendo el identityConfigurationName
atributo ). Para establecer el administrador de autorización de notificaciones mediante programación, proporcione un controlador para el FederatedAuthentication.FederationConfigurationCreated evento.
Constructores
ClaimsPrincipalPermissionAttribute(SecurityAction) |
Inicializa una nueva instancia de la clase ClaimsPrincipalPermissionAttribute. |
Propiedades
Action |
Obtiene o establece una acción de seguridad. (Heredado de SecurityAttribute) |
Operation |
Obtiene o establece la operación para la que la entidad de seguridad actual debe recibir autorización en el recurso especificado. |
Resource |
Obtiene o establece el recurso en que la entidad de seguridad debe recibir autorización para realizar la acción (operación) especificada. |
TypeId |
Cuando se implementa en una clase derivada, obtiene un identificador único para este Attribute. (Heredado de Attribute) |
Unrestricted |
Obtiene o establece un valor que indica si se declara el permiso completo (sin restricciones) al recurso protegido por el atributo. (Heredado de SecurityAttribute) |
Métodos
CreatePermission() |
Crea una nueva instancia de la clase ClaimsPrincipalPermission basándose en la instancia actual. |
Equals(Object) |
Devuelve un valor que indica si esta instancia es igual que un objeto especificado. (Heredado de Attribute) |
GetHashCode() |
Devuelve el código hash de esta instancia. (Heredado de Attribute) |
GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
IsDefaultAttribute() |
Si se reemplaza en una clase derivada, indica si el valor de esta instancia es el valor predeterminado de la clase derivada. (Heredado de Attribute) |
Match(Object) |
Cuando se invalida en una clase derivada, devuelve un valor que indica si esta instancia es igual a un objeto especificado. (Heredado de Attribute) |
MemberwiseClone() |
Crea una copia superficial del Object actual. (Heredado de Object) |
ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |
Implementaciones de interfaz explícitas
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Asigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío. (Heredado de Attribute) |
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Obtiene la información de tipos de un objeto, que puede utilizarse para obtener la información de tipos de una interfaz. (Heredado de Attribute) |
_Attribute.GetTypeInfoCount(UInt32) |
Recupera el número de interfaces de información de tipo que proporciona un objeto (0 ó 1). (Heredado de Attribute) |
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Proporciona acceso a las propiedades y los métodos expuestos por un objeto. (Heredado de Attribute) |