Vorgehensweise: Erstellen einer benutzerdefinierten Ausstellernamenregistrierung

Der folgende Code zeigt, wie benutzerdefinierte Ausstellernamenregistrierungen für X509SecurityTokenHandler und Saml11SecurityTokenHandler erstellt werden. DBHelper.IsIssuerTokenValid ist ein Platzhalter für eine Hilfsmethode, die das Ausstellertoken überprüft.

using Microsoft.IdentityModel.Tokens; using System.IdentityModel.Tokens;

class SampleIssuerNameRegistry : IssuerNameRegistry { // called by X509SecurityTokenHandler.Validate public override string GetIssuerName(SecurityToken securityToken) { if (!(securityToken is X509SecurityToken)) { throw new SecurityTokenValidationException("Invalid token."); }

        X509SecurityToken x509Token = securityToken as X509SecurityToken;

        // in der X509-Variante hat das X509-Token keinen Bezug zu issuer name bool issuerTokenValid = DBHelper.IsIssuerTokenValid (x509Token);

        if (!issuerTokenValid) { throw new SecurityTokenValidationException("Untrusted issuer token."); }

        return x509Token.Certificate.FriendlyName; }

    // aufgerufen von Saml11SecurityTokenHandler.Validate und Saml2SecurityTokenHandler.Validate public override string GetIssuerName(SecurityToken securityToken, string requestedIssuerName) { bool issuerTokenValid = DBHelper.IsIssuerTokenValid(securityToken);

        if (!issuerTokenValid) { throw new SecurityTokenValidationException("Untrusted issuer token."); }

        return requestedIssuerName; }

    public override string GetWindowsIssuerName() { return "WINDOWS AUTHORITY"; }

}