Condividi tramite


IssuerNameRegistry Classe

Definizione

Classe di base astratta per un registro dei nomi delle autorità emittenti. Un registro dei nomi dell'autorità emittente viene utilizzato per associare un nome mnemonico al materiale di crittografia che è necessario per verificare le firme dei token prodotti dall'autorità emittente corrispondente. Il Registro di sistema dei nomi delle autorità emittenti gestisce un elenco di emittenti che sono considerati attendibili da un'applicazione relying party (RP).

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
Ereditarietà
IssuerNameRegistry
Derivato
Implementazioni

Esempio

Il codice seguente illustra un'implementazione della IssuerNameRegistry classe che accetta solo le autorità emittenti che usano certificati con oggetto "CN=localhost".

Avviso

Il codice seguente è solo a scopo illustrativo. La convalida dei certificati in base al nome soggetto non è una procedura consigliata. Questo codice non deve essere usato così come è in produzione.

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.");
        }
    }
}

Di seguito viene illustrato il codice XML necessario per configurare un'applicazione con il registro dei nomi dell'autorità emittente attendibile.

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

Commenti

Il registro dei nomi dell'autorità emittente viene usato per associare un nome mnemonico al materiale crittografico necessario per verificare le firme dei token prodotti dall'emittente corrispondente. Questo nome viene quindi usato per impostare la Issuer proprietà o OriginalIssuer di un'attestazione. I metodi esposti dalla IssuerNameRegistry classe vengono chiamati dalla pipeline dal gestore del token di sicurezza che elabora il token. I token firmati dal materiale non mappato da un registro dei nomi dell'autorità di certificazione vengono eliminati come non attendibili. Il nome restituito dal registro dei nomi dell'autorità emittente deve essere univoco all'interno del contesto di un'applicazione rp.

Nel codice è possibile specificare il registro dei nomi dell'autorità di certificazione da usare impostando la SecurityTokenHandlerConfiguration.IssuerNameRegistry proprietà . In un file di configurazione è possibile specificare il registro dei nomi dell'autorità emittente specificando l'elemento <issuerNameRegistry> nell'elemento <securityTokenHandlerConfiguration> .

Windows Identity Foundation (WIF) fornisce un'implementazione IssuerNameRegistry della classe predefinita: la ConfigurationBasedIssuerNameRegistry classe . Quando si usa questa implementazione, è possibile specificare l'elenco di autorità emittenti attendibili nel file di configurazione dell'applicazione RP nell'elemento <trustedIssuers> , che è un elemento figlio dell'elemento <issuerNameRegistry> quando viene fatto riferimento alla ConfigurationBasedIssuerNameRegistryclasse nell'attributo di type tale elemento. Nell'elemento ogni nome dell'autorità <trustedIssuers> emittente viene mappato al certificato X.509 che deve essere usato per verificare la firma.

Per creare un registro dei nomi dell'autorità di certificazione personalizzato, è necessario eseguire l'override del IssuerNameRegistry.GetIssuerName(SecurityToken) metodo . Questo metodo restituisce il nome dell'autorità emittente per il token di sicurezza specificato. Facoltativamente, è possibile eseguire l'override del IssuerNameRegistry.GetIssuerName(SecurityToken, String) metodo per fornire un meccanismo di suggerimento quando si recuperano i nomi dell'autorità di certificazione e il GetWindowsIssuerName metodo se si vuole specificare un nome dell'autorità emittente per i token di Windows diversi da DefaultIssuer. Eseguire l'override del metodo per consentire l'inizializzazione LoadCustomConfiguration del registro dei nomi dell'autorità emittente da un file di configurazione.

Costruttori

IssuerNameRegistry()

Inizializza una nuova istanza della classe IssuerNameRegistry.

Metodi

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetIssuerName(SecurityToken)

Se sottoposto a override in una classe derivata, restituisce il nome dell'emittente del token di sicurezza specificato.

GetIssuerName(SecurityToken, String)

Se sottoposto a override in una classe derivata, restituisce il nome dell'emittente del token di sicurezza specificato. Il nome specificato dell'autorità emittente può essere considerato per determinare il nome dell'autorità da restituire.

GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
GetWindowsIssuerName()

Restituisce il nome dell'autorità emittente predefinito da utilizzare per le attestazioni di windows.

LoadCustomConfiguration(XmlNodeList)

Quando sottoposto a override in una classe derivata, carica la configurazione personalizzata dall'XML.

MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Si applica a

Vedi anche