ClaimsPrincipal ClaimsPrincipal ClaimsPrincipal ClaimsPrincipal Class

Definición

Implementación de IPrincipal que admite varias identidades basadas en notificaciones.An IPrincipal implementation that supports multiple claims-based identities.

public ref class ClaimsPrincipal : System::Security::Principal::IPrincipal
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public class ClaimsPrincipal : System.Security.Principal.IPrincipal
type ClaimsPrincipal = class
    interface IPrincipal
Public Class ClaimsPrincipal
Implements IPrincipal
Herencia
ClaimsPrincipalClaimsPrincipalClaimsPrincipalClaimsPrincipal
Atributos
Implementaciones

Ejemplos

El ejemplo siguiente extrae las notificaciones presentadas por un usuario en una solicitud HTTP y los escribe en la respuesta HTTP.The following example extracts the claims presented by a user in an HTTP request and writes them to the HTTP response. El usuario actual se lee desde el HttpContext como un ClaimsPrincipal.The current user is read from the HttpContext as a ClaimsPrincipal. Las notificaciones, a continuación, se leen de él y, a continuación, se escriben en la respuesta.The claims are then read from it and then are written to the response.

ClaimsPrincipal principal = HttpContext.Current.User as ClaimsPrincipal;  
if (null != principal)  
{  
   foreach (Claim claim in principal.Claims)  
   {  
      Response.Write("CLAIM TYPE: " + claim.Type + "; CLAIM VALUE: " + claim.Value + "</br>");  
   }  
}  

Comentarios

A partir de .NET Framework 4.5, Windows Identity Foundation (WIF) y la identidad basada en notificaciones se han totalmente integrados en .NET Framework.Beginning with .NET Framework 4.5, Windows Identity Foundation (WIF) and claims-based identity have been fully integrated into the .NET Framework. Esto significa que muchas clases que representan una entidad de seguridad en .NET Framework ahora se derivan de ClaimsPrincipal en lugar de implementar simplemente el IPrincipal interfaz.This means that many classes that represent a principal in the .NET Framework now derive from ClaimsPrincipal rather than simply implementing the IPrincipal interface. Además de implementar el IPrincipal interfaz, ClaimsPrincipal expone propiedades y métodos que son útiles para trabajar con las notificaciones.In addition to implementing the IPrincipal interface, ClaimsPrincipal exposes properties and methods that are useful for working with claims.

ClaimsPrincipal expone una colección de identidades, cada uno de los cuales es un ClaimsIdentity.ClaimsPrincipal exposes a collection of identities, each of which is a ClaimsIdentity. En el caso habitual, esta colección, que se accede mediante el Identities propiedad, solo tendrá un único elemento.In the common case, this collection, which is accessed through the Identities property, will only have a single element.

La introducción de ClaimsPrincipal en .NET Framework 4.5 como la entidad de seguridad derivan más clases de entidad de seguridad no obliga a cambiar nada en la forma en la que se trabaja con la identidad.The introduction of ClaimsPrincipal in .NET 4.5 as the principal from which most principal classes derive does not force you to change anything in the way in which you deal with identity. Sin embargo abrir más posibilidades y ofrecen más oportunidades para ejercer un mayor control de acceso.It does, however open up more possibilities and offer more chances to exercise finer access control. Por ejemplo:For example:

  • El código de la aplicación puede trabajar directamente con las notificaciones contenidas en la entidad de seguridad actual para controlar las tareas de personalización, autorización y autenticación adicional.The application code itself can work directly with the claims contained in the current principal to drive extra authentication, authorization, and personalization tasks.

  • Puede frontal los recursos con una canalización, que puede tratar con las solicitudes de autenticación y la directiva de autorización antes de la ejecución llega a su código de procesamiento de notificaciones.You can front your resources with a claims processing pipeline, which can deal with authentication requests and authorization policy even before execution reaches your code. Por ejemplo, puede configurar una aplicación basada en web o servicio con un administrador de autenticación de notificaciones personalizadas, una instancia de una clase que deriva la ClaimsAuthenticationManager clase.For example, you can configure a web-based application or service with a custom claims authentication manager, an instance of a class that derives from the ClaimsAuthenticationManager class. Cuando se configura así, la canalización de procesamiento de solicitud invoca el Authenticate método en el Administrador de autenticación de notificaciones pasándole un ClaimsPrincipal que representa el contexto de la solicitud entrante.When so configured, the request processing pipeline invokes the Authenticate method on your claims authentication manager passing it a ClaimsPrincipal that represents the context of the incoming request. El Administrador de autenticación de notificaciones, a continuación, puede realizar la autenticación basada en los valores de las notificaciones entrantes.Your claims authentication manager can then perform authentication based on the values of the incoming claims. También puede filtrar, transformar o agregar notificaciones al conjunto de notificaciones entrantes.It can also filter, transform, or add claims to the incoming claim set. Por ejemplo, podría usarse para enriquecer el conjunto con nuevas notificaciones creadas a partir de un origen de datos local como un perfil de usuario local de notificaciones entrantesFor example, it could be used to enrich the incoming claim set with new claims created from a local data source such as a local user profile

  • Puede configurar una aplicación basada en web con un administrador de autorización de notificaciones personalizadas, una instancia de una clase que deriva la ClaimsAuthorizationManager clase.You can configure a web-based application with a custom claims authorization manager, an instance of a class that derives from the ClaimsAuthorizationManager class. Cuando se configura por lo tanto, la canalización de procesamiento de la solicitud entrante de paquetes ClaimsPrincipal en un AuthorizationContext e invoca el CheckAccess método en el Administrador de autorización de notificaciones.When so configured, the request processing pipeline packages the incoming ClaimsPrincipal in an AuthorizationContext and invokes the CheckAccess method on your claims authorization manager. El Administrador de autorización de notificaciones, a continuación, puede exigir la autorización en función de las notificaciones entrantes.Your claims authorization manager can then enforce authorization based on the incoming claims.

  • Comprobaciones de acceso de código basada en notificaciones de en línea puede realizarse mediante la configuración de la aplicación con un administrador de autorización de notificaciones personalizadas y utilizando el ClaimsPrincipalPermission clase para realizar comprobaciones de acceso imperativas o ClaimsPrincipalPermissionAttribute para realizar el acceso declarativo comprobaciones.Inline claims-based code access checks can be performed by configuring your application with a custom claims authorization manager and using either the ClaimsPrincipalPermission class to perform imperative access checks or the ClaimsPrincipalPermissionAttribute to perform declarative access checks. Comprobaciones de acceso de código basada en notificaciones realizar insertada, fuera de la canalización de procesamiento y por lo que están disponibles para todas las aplicaciones siempre y cuando se configura un administrador de autorización de notificaciones.Claims-based code access checks are performed inline, outside of the processing pipeline, and so are available to all applications as long as a claims authorization manager is configured.

Puede obtener un ClaimsPrincipal instancia para la entidad de seguridad asociado a una solicitud en una aplicación de RP (o la entidad de seguridad en la que se está ejecutando un subproceso) al convertir el Thread.CurrentPrincipal propiedad ClaimsPrincipal.You can obtain a ClaimsPrincipal instance for the principal associated with a request in an RP application (or the principal under which a thread is executing) by casting the Thread.CurrentPrincipal property to ClaimsPrincipal. Las notificaciones asociadas con un ClaimsPrincipal objeto están disponibles a través de su Claims propiedad.The claims associated with an ClaimsPrincipal object are available through its Claims property. El Claims propiedad devuelve todas las notificaciones que contiene las identidades asociadas con la entidad de seguridad.The Claims property returns all of the claims contained by the identities associated with the principal. En el caso poco habitual en el que el ClaimsPrincipal contiene varias ClaimsIdentity instancias, puede usar el Identities propiedad o se puede acceder a la identidad principal mediante el Identity propiedad.In the uncommon case in which the ClaimsPrincipal contains multiple ClaimsIdentity instances, you can use the Identities property or you can access the primary identity by using the Identity property. ClaimsPrincipal proporciona varios métodos a través del cual se pueden buscar estas notificaciones y es totalmente compatible con Language Integrated Query (LINQ).ClaimsPrincipal provides several methods through which these claims may be searched and fully supports Language Integrated Query (LINQ). Las identidades se pueden agregar a la entidad de seguridad mediante el uso de la AddIdentities o AddIdentity métodos.Identities can be added to the principal by using the AddIdentities or AddIdentity methods.

Nota

Para agregar las identidades a la ClaimsPrincipal, autor de la llamada debe tener plena confianza.To add identities to the ClaimsPrincipal, a caller must have full trust.

De forma predeterminada, WIF da prioridad a WindowsIdentity objetos al seleccionar la identidad primaria para devolver a través de la Identity propiedad.By default, WIF prioritizes WindowsIdentity objects when selecting the primary identity to return through the Identity property. Puede modificar este comportamiento si se suministra un delegado a través de la PrimaryIdentitySelector propiedad para realizar la selección.You can modify this behavior by supplying a delegate through the PrimaryIdentitySelector property to perform the selection. El ClaimsPrincipalSelector propiedad proporciona una funcionalidad similar para el Current propiedad.The ClaimsPrincipalSelector property provides similar functionality for the Current property.

En el modelo basado en notificaciones, si una entidad de seguridad en una función especificada se viene determinada por las notificaciones presentadas por sus identidades subyacentes.In the claim-based model, whether a principal is in a specified role is determined by the claims presented by its underlying identities. El IsInRole método esencialmente examina cada identidad asociada con la entidad de seguridad para determinar si posee una notificación con el valor de la función especificada.The IsInRole method essentially examines each identity associated with the principal to determine whether it possesses a claim with the specified role value. El tipo de notificación (representado por su Claim.Type propiedad) usa para determinar qué notificaciones deben examinarse durante la función de las comprobaciones se especifica en una identidad a través de su ClaimsIdentity.RoleClaimType propiedad.The type of the claim (represented by its Claim.Type property) used to determine which claims should be examined during role checks is specified on an identity through its ClaimsIdentity.RoleClaimType property. Por lo tanto, las notificaciones que se examinan durante las comprobaciones de rol pueden ser de un tipo diferente para diferentes identidades asociado con la entidad de seguridad.Thus, the claims examined during role checks can be of a different type for different identities associated with the principal.

Constructores

ClaimsPrincipal() ClaimsPrincipal() ClaimsPrincipal() ClaimsPrincipal()

Inicializa una nueva instancia de la clase ClaimsPrincipal.Initializes a new instance of the ClaimsPrincipal class.

ClaimsPrincipal(BinaryReader) ClaimsPrincipal(BinaryReader) ClaimsPrincipal(BinaryReader) ClaimsPrincipal(BinaryReader)

Inicializa una instancia de ClaimsPrincipal con BinaryReader especificado.Initializes an instance of ClaimsPrincipal with the specified BinaryReader.

ClaimsPrincipal(IEnumerable<ClaimsIdentity>) ClaimsPrincipal(IEnumerable<ClaimsIdentity>) ClaimsPrincipal(IEnumerable<ClaimsIdentity>) ClaimsPrincipal(IEnumerable<ClaimsIdentity>)

Inicializa una nueva instancia de la clase ClaimsPrincipal mediante identidades de notificaciones especificadas.Initializes a new instance of the ClaimsPrincipal class using the specified claims identities.

ClaimsPrincipal(IIdentity) ClaimsPrincipal(IIdentity) ClaimsPrincipal(IIdentity) ClaimsPrincipal(IIdentity)

Inicializa una nueva instancia de la clase ClaimsPrincipal a partir de identidad especificada.Initializes a new instance of the ClaimsPrincipal class from the specified identity.

ClaimsPrincipal(IPrincipal) ClaimsPrincipal(IPrincipal) ClaimsPrincipal(IPrincipal) ClaimsPrincipal(IPrincipal)

Inicializa una nueva instancia de la clase ClaimsPrincipal a partir de la entidad de seguridad especificada.Initializes a new instance of the ClaimsPrincipal class from the specified principal.

ClaimsPrincipal(SerializationInfo, StreamingContext) ClaimsPrincipal(SerializationInfo, StreamingContext) ClaimsPrincipal(SerializationInfo, StreamingContext) ClaimsPrincipal(SerializationInfo, StreamingContext)

Inicializa una nueva instancia de la clase ClaimsPrincipal a partir de una secuencia serializada creada mediante ISerializable.Initializes a new instance of the ClaimsPrincipal class from a serialized stream created by using ISerializable.

Propiedades

Claims Claims Claims Claims

Obtiene una colección que contiene todas las notificaciones de todas las identidades de notificaciones asociadas a esta entidad de seguridad de notificaciones.Gets a collection that contains all of the claims from all of the claims identities associated with this claims principal.

ClaimsPrincipalSelector ClaimsPrincipalSelector ClaimsPrincipalSelector ClaimsPrincipalSelector

Obtiene o establece el delegado que se usa para seleccionar la entidad de seguridad para notificaciones que devuelve la propiedad Current.Gets or sets the delegate used to select the claims principal returned by the Current property.

Current Current Current Current

Obtiene la entidad de seguridad de notificaciones actual.Gets the current claims principal.

CustomSerializationData CustomSerializationData CustomSerializationData CustomSerializationData

Contiene datos adicionales proporcionados por un tipo derivado.Contains any additional data provided by a derived type. Se establece normalmente cuando se llama a WriteTo(BinaryWriter, Byte[]).Typically set when calling WriteTo(BinaryWriter, Byte[]).

Identities Identities Identities Identities

Obtiene una colección que contiene todas las identidades de notificaciones asociadas a esta entidad de seguridad de notificaciones.Gets a collection that contains all of the claims identities associated with this claims principal.

Identity Identity Identity Identity

Obtiene la identidad primaria de las notificaciones asociada a esta entidad de seguridad de notificaciones.Gets the primary claims identity associated with this claims principal.

PrimaryIdentitySelector PrimaryIdentitySelector PrimaryIdentitySelector PrimaryIdentitySelector

Obtiene o establece el delegado que se usa para seleccionar la identidad de las notificaciones devuelta por la propiedad Identity.Gets or sets the delegate used to select the claims identity returned by the Identity property.

Métodos

AddIdentities(IEnumerable<ClaimsIdentity>) AddIdentities(IEnumerable<ClaimsIdentity>) AddIdentities(IEnumerable<ClaimsIdentity>) AddIdentities(IEnumerable<ClaimsIdentity>)

Agrega las identidades de notificaciones especificadas a esta entidad de seguridad de notificaciones.Adds the specified claims identities to this claims principal.

AddIdentity(ClaimsIdentity) AddIdentity(ClaimsIdentity) AddIdentity(ClaimsIdentity) AddIdentity(ClaimsIdentity)

Agrega la identidad de notificaciones especificadas a esta entidad de seguridad de notificaciones.Adds the specified claims identity to this claims principal.

Clone() Clone() Clone() Clone()

Devuelve una copia de esta instancia.Returns a copy of this instance.

CreateClaimsIdentity(BinaryReader) CreateClaimsIdentity(BinaryReader) CreateClaimsIdentity(BinaryReader) CreateClaimsIdentity(BinaryReader)

Crea una nueva identidad basada en notificaciones.Creates a new claims identity.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Determina si el objeto especificado es igual al objeto actual.Determines whether the specified object is equal to the current object.

(Inherited from Object)
FindAll(Predicate<Claim>) FindAll(Predicate<Claim>) FindAll(Predicate<Claim>) FindAll(Predicate<Claim>)

Recupera todas las notificaciones que coinciden con el predicado especificado.Retrieves all of the claims that are matched by the specified predicate.

FindAll(String) FindAll(String) FindAll(String) FindAll(String)

Recupera todas las notificaciones o aquellas con el tipo de notificación especificado.Retrieves all or the claims that have the specified claim type.

FindFirst(Predicate<Claim>) FindFirst(Predicate<Claim>) FindFirst(Predicate<Claim>) FindFirst(Predicate<Claim>)

Recupera la primera reclamación con la que coincide el predicado especificado.Retrieves the first claim that is matched by the specified predicate.

FindFirst(String) FindFirst(String) FindFirst(String) FindFirst(String)

Recupera la primera reclamación con el tipo especificado.Retrieves the first claim with the specified claim type.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Sirve como la función hash predeterminada.Serves as the default hash function.

(Inherited from Object)
GetObjectData(SerializationInfo, StreamingContext) GetObjectData(SerializationInfo, StreamingContext) GetObjectData(SerializationInfo, StreamingContext) GetObjectData(SerializationInfo, StreamingContext)

Rellena el objeto SerializationInfo con los datos necesarios para serializar el objeto ClaimsPrincipal actual.Populates the SerializationInfo with data needed to serialize the current ClaimsPrincipal object.

GetType() GetType() GetType() GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(Inherited from Object)
HasClaim(Predicate<Claim>) HasClaim(Predicate<Claim>) HasClaim(Predicate<Claim>) HasClaim(Predicate<Claim>)

Determina si cualquiera de las identidades de notificaciones asociadas a esta entidad de seguridad de notificaciones contiene una notificación que coincide con el predicado especificado.Determines whether any of the claims identities associated with this claims principal contains a claim that is matched by the specified predicate.

HasClaim(String, String) HasClaim(String, String) HasClaim(String, String) HasClaim(String, String)

Determina si cualquiera de las identidades de notificaciones asociadas a esta entidad de seguridad de notificaciones contiene una notificación con el valor y el tipo de notificación especificada.Determines whether any of the claims identities associated with this claims principal contains a claim with the specified claim type and value.

IsInRole(String) IsInRole(String) IsInRole(String) IsInRole(String)

Devuelve un valor que indica si la entidad (usuario) representada por esta entidad de seguridad de notificaciones está en el rol especificado.Returns a value that indicates whether the entity (user) represented by this claims principal is in the specified role.

MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Crea una copia superficial del objeto Object actual.Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

Devuelve una cadena que representa el objeto actual.Returns a string that represents the current object.

(Inherited from Object)
WriteTo(BinaryWriter) WriteTo(BinaryWriter) WriteTo(BinaryWriter) WriteTo(BinaryWriter)

Se serializa usando un BinaryWriter.Serializes using a BinaryWriter.

WriteTo(BinaryWriter, Byte[]) WriteTo(BinaryWriter, Byte[]) WriteTo(BinaryWriter, Byte[]) WriteTo(BinaryWriter, Byte[])

Se serializa usando un BinaryWriter.Serializes using a BinaryWriter.

Se aplica a

Consulte también: