IssuerNameRegistry Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Die abstrakte Basisklasse für eine Ausstellernamen-Registrierung. Eine Ausstellernamensregistrierung wird verwendet, um einen Merknamen kryptografischen Informationen zuzuordnen, das erforderlich ist, um die Signaturen von Token zu überprüfen, die vom entsprechenden Aussteller erzeugt werden. Die Ausstellernamenregistration führt eine Liste von Ausstellern, denen von einer RP-Anwendung (relying party) vertraut wird.
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
- Vererbung
-
IssuerNameRegistry
- Abgeleitet
- Implementiert
Beispiele
Der folgende Code zeigt eine Implementierung der -Klasse, die IssuerNameRegistry nur Aussteller akzeptiert, die Zertifikate mit dem Betreff "CN=localhost" verwenden.
Warnung
Der folgende Code dient nur zur Veranschaulichung. Die Validierung von Zertifikaten anhand des Antragstellernamens ist keine bewährte Methode. Dieser Code sollte nicht wie in der Produktion verwendet werden.
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.");
}
}
}
Im Folgenden wird der XML-Code veranschaulicht, der zum Konfigurieren einer Anwendung mit der Namensregistrierung des vertrauenswürdigen Ausstellers erforderlich ist.
<system.identityModel>
<identityConfiguration>
<issuerNameRegistry type="System.IdentityModel.Samples.TrustedIssuerNameRegistry, MyApp" />
</identityConfiguration>
</system.identityModel>
Hinweise
Die Ausstellernamenregistrierung wird verwendet, um dem kryptografischen Material einen mnemonischen Namen zuzuordnen, der zum Überprüfen der Signaturen von Token benötigt wird, die vom entsprechenden Aussteller erstellt wurden. Dieser Name wird dann verwendet, um die Issuer -Eigenschaft oder - OriginalIssuer Eigenschaft eines Anspruchs festzulegen. Die von der IssuerNameRegistry -Klasse verfügbar gemachten Methoden werden von dem Sicherheitstokenhandler, der das Token verarbeitet, aus der Pipeline aufgerufen. Token, die von Material signiert sind, das nicht von einer Ausstellernamenregistrierung zugeordnet ist, werden als nicht vertrauenswürdig verworfen. Der von der Ausstellernamenregistrierung zurückgegebene Name sollte im Kontext einer RP-Anwendung eindeutig sein.
Im Code können Sie die zu verwendende Registrierung des Ausstellernamens angeben, indem Sie die SecurityTokenHandlerConfiguration.IssuerNameRegistry -Eigenschaft festlegen. In einer Konfigurationsdatei kann die Ausstellernamenregistrierung angegeben werden, indem das <issuerNameRegistry-Element> unter dem <SecurityTokenHandlerConfiguration-Element> angegeben wird.
Windows Identity Foundation (WIF) stellt eine sofort einsatzbereite Implementierung der IssuerNameRegistry -Klasse bereit: die ConfigurationBasedIssuerNameRegistry -Klasse. Wenn Sie diese Implementierung verwenden, können Sie die Liste der vertrauenswürdigen Aussteller in der Konfigurationsdatei der RP-Anwendung unter dem <trustedIssuers-Element> angeben, das ein untergeordnetes Element des <issuerNameRegistry>
Elements ist, wenn im Attribut dieses type
Elements auf die ConfigurationBasedIssuerNameRegistryKLASSE verwiesen wird. Unter dem <trustedIssuers>
-Element wird jeder Ausstellername dem X.509-Zertifikat zugeordnet, das zum Überprüfen seiner Signatur verwendet werden soll.
Um eine benutzerdefinierte Ausstellernamenregistrierung zu erstellen, müssen Sie die IssuerNameRegistry.GetIssuerName(SecurityToken) -Methode überschreiben. Diese Methode gibt den Ausstellernamen für das angegebene Sicherheitstoken zurück. Optional können Sie die IssuerNameRegistry.GetIssuerName(SecurityToken, String) -Methode überschreiben, um beim Abrufen von Ausstellernamen einen Hinweismechanismus bereitzustellen, und die GetWindowsIssuerName -Methode, wenn Sie einen Ausstellernamen für Windows-Token bereitstellen möchten, der sich von unterscheidet DefaultIssuer. Überschreiben Sie die LoadCustomConfiguration -Methode, damit Ihre Ausstellernamenregistrierung aus einer Konfigurationsdatei initialisiert werden kann.
Konstruktoren
IssuerNameRegistry() |
Initialisiert eine neue Instanz der IssuerNameRegistry-Klasse. |
Methoden
Equals(Object) |
Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist. (Geerbt von Object) |
GetHashCode() |
Fungiert als Standardhashfunktion. (Geerbt von Object) |
GetIssuerName(SecurityToken) |
Gibt beim Überschreiben in einer abgeleiteten Klasse den Namen des Ausstellers für das angegebene Sicherheitstoken zurück. |
GetIssuerName(SecurityToken, String) |
Gibt beim Überschreiben in einer abgeleiteten Klasse den Namen des Ausstellers für das angegebene Sicherheitstoken zurück. Der angegebene Ausstellername kann betrachtet werden, wenn der Ausstellername, der zurückgegeben werden soll, bestimmt wird. |
GetType() |
Ruft den Type der aktuellen Instanz ab. (Geerbt von Object) |
GetWindowsIssuerName() |
Gibt den standardmäßigen Ausstellernamen zurück, der für Windows-Ansprüche zu verwenden ist. |
LoadCustomConfiguration(XmlNodeList) |
Lädt beim Überschreiben in einer abgeleiteten Klasse die benutzerdefinierte Konfiguration aus XML ab. |
MemberwiseClone() |
Erstellt eine flache Kopie des aktuellen Object. (Geerbt von Object) |
ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |