Comparteix a través de


IssuerNameRegistry Clase

Definición

La clase base abstracta para un Registro de nombres de emisores. Un Registro del nombre del emisor se utiliza para asociar un nombre mnemotécnico al material criptográfico necesario para comprobar las signaturas de los tokens generados por el emisor correspondiente. El registro de nombre de emisores mantiene una lista de emisores en los que una aplicación de usuario de confianza (RP) confía.

public ref class IssuerNameRegistry abstract : System::IdentityModel::Configuration::ICustomIdentityConfiguration
public abstract class IssuerNameRegistry : System.IdentityModel.Configuration.ICustomIdentityConfiguration
type IssuerNameRegistry = class
    interface ICustomIdentityConfiguration
Public MustInherit Class IssuerNameRegistry
Implements ICustomIdentityConfiguration
Herencia
IssuerNameRegistry
Derivado
Implementaciones

Ejemplos

El código siguiente muestra una implementación de la IssuerNameRegistry clase que solo acepta emisores que usan certificados con el asunto "CN=localhost".

Advertencia

El código siguiente solo tiene fines ilustrativos. La validación de certificados basados en el nombre del firmante no es un procedimiento recomendado. Este código no debe usarse como está en producción.

using System.IdentityModel.Tokens;

namespace System.IdentityModel.Samples
{
    /// <summary>
    /// This class verifies that the issuer is trusted, and provides the issuer name.
    /// </summary>
    public class TrustedIssuerNameRegistry : IssuerNameRegistry
    {
        /// <summary>
        /// Gets the issuer name of the given security token,
        /// if it is the X509SecurityToken of 'localhost'.
        /// </summary>
        /// <param name="securityToken">The issuer's security token</param>
        /// <returns>A string that represents the issuer name</returns>
        /// <exception cref="SecurityTokenException">If the issuer is not trusted.</exception>
        public override string GetIssuerName(SecurityToken securityToken)
        {
            X509SecurityToken x509Token = securityToken as X509SecurityToken;
            if (x509Token != null)
            {
                if (String.Equals(x509Token.Certificate.SubjectName.Name, "CN=localhost"))
                {
                    return x509Token.Certificate.SubjectName.Name;
                }
            }

            throw new SecurityTokenException("Untrusted issuer.");
        }
    }
}

A continuación se muestra el XML necesario para configurar una aplicación con el registro de nombres de emisor de confianza.

<system.identityModel>  
  <identityConfiguration>  
    <issuerNameRegistry type="System.IdentityModel.Samples.TrustedIssuerNameRegistry, MyApp" />  
  </identityConfiguration>  
</system.identityModel>  

Comentarios

El registro de nombres del emisor se usa para asociar un nombre mnemónico al material criptográfico necesario para comprobar las firmas de los tokens generados por el emisor correspondiente. A continuación, este nombre se usa para establecer la Issuer propiedad o OriginalIssuer de una notificación. El controlador de tokens de seguridad que procesa el token llama a los métodos expuestos por la IssuerNameRegistry clase desde la canalización. Los tokens firmados por material que no está asignado por un registro de nombres de emisor se descartan como que no son de confianza. El nombre devuelto por el registro de nombres del emisor debe ser único en el contexto de una aplicación de RP.

En el código, puede especificar el registro de nombres del emisor que se usará estableciendo la SecurityTokenHandlerConfiguration.IssuerNameRegistry propiedad . En un archivo de configuración, el registro de nombres del emisor se puede especificar especificando el <elemento issuerNameRegistry> en el <elemento securityTokenHandlerConfiguration> .

Windows Identity Foundation (WIF) proporciona una implementación de la IssuerNameRegistry clase lista para usar: la ConfigurationBasedIssuerNameRegistry clase . Al usar esta implementación, puede especificar la lista de emisores de confianza en el archivo de configuración de la aplicación rp en el <elemento trustedIssuers> , que es un elemento secundario del <issuerNameRegistry> elemento cuando se hace referencia a la ConfigurationBasedIssuerNameRegistryclase .class en el atributo de type ese elemento. En el <trustedIssuers> elemento , cada nombre del emisor se asigna al certificado X.509 que se debe usar para comprobar su firma.

Para crear un registro de nombres de emisor personalizado, debe invalidar el IssuerNameRegistry.GetIssuerName(SecurityToken) método . Este método devuelve el nombre del emisor para el token de seguridad especificado. Opcionalmente, puede invalidar el IssuerNameRegistry.GetIssuerName(SecurityToken, String) método para proporcionar un mecanismo de sugerencias al recuperar nombres de emisor y el GetWindowsIssuerName método si desea proporcionar un nombre de emisor para los tokens de Windows que son diferentes de DefaultIssuer. Invalide el LoadCustomConfiguration método para permitir que el registro de nombres del emisor se inicialice desde un archivo de configuración.

Constructores

IssuerNameRegistry()

Inicializa una nueva instancia de la clase IssuerNameRegistry.

Métodos

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)
GetIssuerName(SecurityToken)

Cuando se reemplaza en una clase derivada, devuelve el nombre del emisor del token de seguridad especificado.

GetIssuerName(SecurityToken, String)

Cuando se reemplaza en una clase derivada, devuelve el nombre del emisor del token de seguridad especificado. El nombre especificado del emisor puede considerarse para determinar el nombre del emisor que se va a devolver.

GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
GetWindowsIssuerName()

Devuelve el nombre de emisor predeterminado que se utilizará para las notificaciones de Windows.

LoadCustomConfiguration(XmlNodeList)

Cuando se reemplaza en una clase derivada, carga la configuración personalizada de XML.

MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Se aplica a

Consulte también