Claim Clase

Definición

Representa una notificación.

public ref class Claim
public class Claim
[System.Serializable]
public class Claim
type Claim = class
[<System.Serializable>]
type Claim = class
Public Class Claim
Herencia
Claim
Atributos

Ejemplos

En el ejemplo siguiente se extraen las notificaciones asociadas al usuario autenticado que realiza una solicitud HTTP y se escriben en la respuesta HTTP. El usuario actual se lee de HttpContext como ClaimsPrincipal y las notificaciones se leen de él. Después, las notificaciones se escriben en el HttpResponse objeto .

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

Una notificación es una instrucción sobre un sujeto por un emisor. Las notificaciones representan atributos del asunto que son útiles en el contexto de las operaciones de autenticación y autorización. Los sujetos y emisores son ambas entidades que forman parte de un escenario de identidad. Algunos ejemplos típicos de un asunto son: un usuario, una aplicación o un servicio, un dispositivo o un equipo. Algunos ejemplos típicos de un emisor son: el sistema operativo, una aplicación, un servicio, un proveedor de roles, un proveedor de identidades o un proveedor de federación. Un emisor entrega notificaciones mediante la emisión de tokens de seguridad, normalmente a través de un servicio de token de seguridad (STS). (En WIF, puede crear un STS derivando de la SecurityTokenService clase ). En ocasiones, los atributos de asunto almacenados directamente en el recurso pueden ampliar la colección de notificaciones recibidas de un emisor. Una notificación se puede evaluar para determinar los derechos de acceso a los datos y otros recursos protegidos durante el proceso de autorización y también se puede usar para tomar o expresar decisiones de autenticación sobre un sujeto.

A partir de .NET 4.5, las clases de Windows Identity Foundation (WIF), que implementan la identidad basada en notificaciones, se han integrado completamente en .NET Framework. La clase implementa el concepto de Claim notificaciones.

A continuación se describen las propiedades importantes de la Claim clase :

  • La Type propiedad es una cadena (normalmente un URI) que contiene la información semántica sobre la notificación; le indica qué significa el valor de la notificación. Por ejemplo, una notificación con un tipo de notificación de GivenName ("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname") representa el nombre de un usuario. El valor de la Type propiedad puede ser uno de los tipos de notificación conocidos definidos en la ClaimTypes clase , o puede ser un URI arbitrario tal como lo define el emisor. Por ejemplo, un tipo de notificación "urn:spendinglimit" podría representar un atributo de usuario que tenga sentido en el contexto empresarial del emisor.

  • La Value propiedad contiene el valor de la notificación. Para reducir las dependencias y simplificar la administración, en WIF, el valor de una notificación solo se representa como una cadena. Para los tipos de valor más complejos, se recomienda usar tipos de esquema XML estándar para indicar cómo se va a serializar el valor en una cadena y deserializar desde una cadena.

  • La ValueType propiedad contiene una cadena que identifica la información de tipo para el valor. Esta propiedad debe usarse para comprender el formato del valor y para proporcionar información sobre cómo deserializarlo. Si la solución requiere tipos de valor complejos, se recomienda usar tipos de esquema XML estándar en la ValueType propiedad para indicar cómo se va a serializar la Value propiedad en una cadena y deserializarla.

  • La Subject propiedad es un ClaimsIdentity objeto que representa el asunto de la notificación. El asunto de la notificación es la entidad (normalmente, el usuario que solicita acceso a un recurso) sobre el que se afirma la notificación. ClaimsIdentity contiene, entre sus propiedades, una colección de notificaciones que describen las propiedades y atributos del asunto según atestigua uno o varios emisores.

  • La Issuer propiedad contiene el nombre de la entidad que emitió la notificación. El emisor de una notificación se representa en WIF mediante una cadena que contiene un nombre tomado de una lista de emisores conocidos que mantiene el registro de nombres del emisor. El registro de nombres del emisor es una instancia de una clase que deriva de la IssuerNameRegistry clase . El registro de nombres del emisor asocia un nombre mnemónico al material criptográfico necesario para comprobar las firmas de los tokens generados por el emisor correspondiente. Por ejemplo, la ConfigurationBasedIssuerNameRegistry clase , disponible de forma predeterminada con .NET 4.5, asocia el nombre mnemónico para cada emisor con su certificado X.509 correspondiente. La lista de emisores conocidos suele compilarse en tiempo de inicio mediante el registro de nombres del emisor. La lista usada por ConfigurationBasedIssuerNameRegistry se especifica en el archivo de configuración de la aplicación.

  • La OriginalIssuer propiedad contiene el nombre de la entidad que emitió originalmente la notificación. Esta propiedad está diseñada para facilitar escenarios en los que una notificación puede pasar a través de varios emisores antes de que el cliente lo presente en la aplicación rp; como escenarios de federación. Puede examinar la OriginalIssuer propiedad para determinar la entidad que emitió originalmente la notificación. El nombre se toma de la lista de emisores conocidos mantenidos por el registro de nombres del emisor, como en el caso de la Issuer propiedad .

Constructores

Claim(BinaryReader)

Inicializa una instancia de Claim con BinaryReader especificado.

Claim(BinaryReader, ClaimsIdentity)

Inicializa una nueva instancia de la clase Claim con el lector y el asunto especificados.

Claim(Claim)

Inicializa una nueva instancia de la clase Claim.

Claim(Claim, ClaimsIdentity)

Inicializa una nueva instancia de la clase Claim con la notificación de seguridad y el asunto especificados.

Claim(String, String)

Inicializa una nueva instancia de la clase Claim con el tipo de notificación y el valor especificados.

Claim(String, String, String)

Inicializa una nueva instancia de la clase Claim con el tipo de notificación especificado, valor y tipo de valor.

Claim(String, String, String, String)

Inicializa una nueva instancia de la clase Claim con el tipo de notificación especificado, valor, tipo de valor y emisor.

Claim(String, String, String, String, String)

Inicializa una nueva instancia de la Claim clase con el tipo de notificación, el valor, el tipo de valor, el emisor y el emisor original especificados.

Claim(String, String, String, String, String, ClaimsIdentity)

Inicializa una nueva instancia de la clase Claim con el tipo de notificación especificado, valor, tipo de valor, emisor, emisor original y asunto.

Propiedades

CustomSerializationData

Contiene datos adicionales proporcionados por un tipo derivado.

Issuer

Obtiene el emisor de la notificación.

OriginalIssuer

Obtiene al emisor original de la notificación.

Properties

Obtiene un diccionario que contiene propiedades adicionales asociadas a esta notificación.

Subject

Obtiene el asunto de la notificación.

Type

Obtiene el tipo de notificación de la notificación.

Value

Obtiene el valor de la notificación.

ValueType

Obtiene el tipo de valor de la notificación.

Métodos

Clone()

Devuelve un nuevo objeto Claim copiado de este objeto. La nueva notificación no tiene un asunto.

Clone(ClaimsIdentity)

Devuelve un nuevo objeto Claim copiado de este objeto. El asunto de la nueva notificación está establecido en la ClaimsIdentity especificada.

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
ToString()

Devuelve una representación de cadena de este objeto Claim.

WriteTo(BinaryWriter)

Escribe este Claim en el sistema de escritura.

WriteTo(BinaryWriter, Byte[])

Escribe este Claim en el sistema de escritura.

Se aplica a

Consulte también