WSSecurityTokenSerializer Klasse

Definition

Die Klasse, die zum Serialisieren und Deserialisieren von Sicherheitstoken, Sicherheitsschlüsselbezeichnern und Sicherheitsschlüsselbezeichnerklauseln verwendet wird, die in den Sicherheitsspezifikationen WS-Security, WS-Trust und WS-SecureConversation definiert sind.

public ref class WSSecurityTokenSerializer : System::IdentityModel::Selectors::SecurityTokenSerializer
public class WSSecurityTokenSerializer : System.IdentityModel.Selectors.SecurityTokenSerializer
type WSSecurityTokenSerializer = class
    inherit SecurityTokenSerializer
Public Class WSSecurityTokenSerializer
Inherits SecurityTokenSerializer
Vererbung
WSSecurityTokenSerializer

Beispiele

Der folgende Code veranschaulicht eine benutzerdefinierte Außerkraftsetzung dieser Klasse.

public class CreditCardSecurityTokenSerializer : WSSecurityTokenSerializer
{
    public CreditCardSecurityTokenSerializer(SecurityTokenVersion version) : base() { }

    protected override bool CanReadTokenCore(XmlReader reader)
    {
        XmlDictionaryReader localReader = XmlDictionaryReader.CreateDictionaryReader(reader);
        if (reader == null)
        {
            throw new ArgumentNullException("reader");
        }
        if (reader.IsStartElement(Constants.CreditCardTokenName, Constants.CreditCardTokenNamespace))
        {
            return true;
        }
        return base.CanReadTokenCore(reader);
    }

    protected override SecurityToken ReadTokenCore(XmlReader reader, SecurityTokenResolver tokenResolver)
    {
        if (reader == null)
        {
            throw new ArgumentNullException("reader");
        }
        if (reader.IsStartElement(Constants.CreditCardTokenName, Constants.CreditCardTokenNamespace))
        {
            string id = reader.GetAttribute(Constants.Id, Constants.WsUtilityNamespace);

            reader.ReadStartElement();

            // Read the credit card number.
            string creditCardNumber = reader.ReadElementString(Constants.CreditCardNumberElementName, Constants.CreditCardTokenNamespace);

            // Read the expiration date.
            string expirationTimeString = reader.ReadElementString(Constants.CreditCardExpirationElementName, Constants.CreditCardTokenNamespace);
            DateTime expirationTime = XmlConvert.ToDateTime(expirationTimeString, XmlDateTimeSerializationMode.Utc);

            // Read the issuer of the credit card.
            string creditCardIssuer = reader.ReadElementString(Constants.CreditCardIssuerElementName, Constants.CreditCardTokenNamespace);
            reader.ReadEndElement();

            CreditCardInfo cardInfo = new CreditCardInfo(creditCardNumber, creditCardIssuer, expirationTime);

            return new CreditCardToken(cardInfo, id);
        }
        else
        {
            return WSSecurityTokenSerializer.DefaultInstance.ReadToken(reader, tokenResolver);
        }
    }

    protected override bool CanWriteTokenCore(SecurityToken token)
    {
        if (token is CreditCardToken)
        {
            return true;
        }
        else
        {
            return base.CanWriteTokenCore(token);
        }
    }

    protected override void WriteTokenCore(XmlWriter writer, SecurityToken token)
    {
        if (writer == null)
        {
            throw new ArgumentNullException("writer");
        }
        if (token == null)
        {
            throw new ArgumentNullException("token");
        }

        CreditCardToken c = token as CreditCardToken;
        if (c != null)
        {
            writer.WriteStartElement(Constants.CreditCardTokenPrefix, Constants.CreditCardTokenName, Constants.CreditCardTokenNamespace);
            writer.WriteAttributeString(Constants.WsUtilityPrefix, Constants.Id, Constants.WsUtilityNamespace, token.Id);
            writer.WriteElementString(Constants.CreditCardNumberElementName, Constants.CreditCardTokenNamespace, c.CardInfo.CardNumber);
            writer.WriteElementString(Constants.CreditCardExpirationElementName, Constants.CreditCardTokenNamespace, XmlConvert.ToString(c.CardInfo.ExpirationDate, XmlDateTimeSerializationMode.Utc));
            writer.WriteElementString(Constants.CreditCardIssuerElementName, Constants.CreditCardTokenNamespace, c.CardInfo.CardIssuer);
            writer.WriteEndElement();
            writer.Flush();
        }
        else
        {
            base.WriteTokenCore(writer, token);
        }
    }
}
Public Class CreditCardSecurityTokenSerializer
    Inherits WSSecurityTokenSerializer

    Public Sub New(ByVal version As SecurityTokenVersion)
        MyBase.New()
    End Sub

    Protected Overrides Function CanReadTokenCore(ByVal reader As XmlReader) As Boolean
        Dim localReader = XmlDictionaryReader.CreateDictionaryReader(reader)
        If reader Is Nothing Then
            Throw New ArgumentNullException("reader")
        End If
        If reader.IsStartElement(Constants.CreditCardTokenName, _
                                 Constants.CreditCardTokenNamespace) Then
            Return True
        End If
        Return MyBase.CanReadTokenCore(reader)
    End Function

    Protected Overrides Function ReadTokenCore(ByVal reader As XmlReader, _
                                               ByVal tokenResolver As SecurityTokenResolver) As SecurityToken
        If reader Is Nothing Then
            Throw New ArgumentNullException("reader")
        End If
        If reader.IsStartElement(Constants.CreditCardTokenName, _
                                 Constants.CreditCardTokenNamespace) Then

            Dim id = reader.GetAttribute(Constants.Id, _
                                         Constants.WsUtilityNamespace)
            reader.ReadStartElement()

            ' Read the credit card number.
            Dim creditCardNumber = reader.ReadElementString(Constants.CreditCardNumberElementName, _
                                                            Constants.CreditCardTokenNamespace)

            ' Read the expiration date.
            Dim expirationTimeString = reader.ReadElementString(Constants.CreditCardExpirationElementName, _
                                                                Constants.CreditCardTokenNamespace)
            Dim expirationTime As DateTime = XmlConvert.ToDateTime(expirationTimeString, _
                                                                   XmlDateTimeSerializationMode.Utc)

            ' Read the issuer of the credit card.
            Dim creditCardIssuer = reader.ReadElementString(Constants.CreditCardIssuerElementName, _
                                                            Constants.CreditCardTokenNamespace)
            reader.ReadEndElement()

            Dim cardInfo As New CreditCardInfo(creditCardNumber, _
                                               creditCardIssuer, _
                                               expirationTime)

            Return New CreditCardToken(cardInfo, id)
        Else
            Return WSSecurityTokenSerializer.DefaultInstance.ReadToken(reader, _
                                                                       tokenResolver)
        End If
    End Function

    Protected Overrides Function CanWriteTokenCore(ByVal token As SecurityToken) As Boolean
        If TypeOf token Is CreditCardToken Then
            Return True
        Else
            Return MyBase.CanWriteTokenCore(token)
        End If
    End Function

    Protected Overrides Sub WriteTokenCore(ByVal writer As XmlWriter, _
                                           ByVal token As SecurityToken)
        If writer Is Nothing Then
            Throw New ArgumentNullException("writer")
        End If
        If token Is Nothing Then
            Throw New ArgumentNullException("token")
        End If

        Dim c = TryCast(token, CreditCardToken)
        If c IsNot Nothing Then
            With writer
                .WriteStartElement(Constants.CreditCardTokenPrefix, _
                                   Constants.CreditCardTokenName, _
                                   Constants.CreditCardTokenNamespace)
                .WriteAttributeString(Constants.WsUtilityPrefix, _
                                      Constants.Id, _
                                      Constants.WsUtilityNamespace, _
                                      token.Id)
                .WriteElementString(Constants.CreditCardNumberElementName, _
                                    Constants.CreditCardTokenNamespace, _
                                    c.CardInfo.CardNumber)
                .WriteElementString(Constants.CreditCardExpirationElementName, _
                                    Constants.CreditCardTokenNamespace, _
                                    XmlConvert.ToString(c.CardInfo.ExpirationDate, _
                                                        XmlDateTimeSerializationMode.Utc))
                .WriteElementString(Constants.CreditCardIssuerElementName, _
                                    Constants.CreditCardTokenNamespace, _
                                    c.CardInfo.CardIssuer)
                .WriteEndElement()
                .Flush()
            End With
        Else
            MyBase.WriteTokenCore(writer, token)
        End If
    End Sub

End Class

Konstruktoren

Name Beschreibung
WSSecurityTokenSerializer()

Initialisiert eine neue Instanz der WSSecurityTokenSerializer-Klasse.

WSSecurityTokenSerializer(Boolean)

Initialisiert eine neue Instanz der WSSecurityTokenSerializer-Klasse.

WSSecurityTokenSerializer(SecurityVersion, Boolean, SamlSerializer, SecurityStateEncoder, IEnumerable<Type>, Int32, Int32, Int32)

Initialisiert eine neue Instanz der WSSecurityTokenSerializer-Klasse.

WSSecurityTokenSerializer(SecurityVersion, Boolean, SamlSerializer, SecurityStateEncoder, IEnumerable<Type>)

Initialisiert eine neue Instanz der WSSecurityTokenSerializer-Klasse.

WSSecurityTokenSerializer(SecurityVersion, Boolean, SamlSerializer)

Initialisiert eine neue Instanz der WSSecurityTokenSerializer-Klasse.

WSSecurityTokenSerializer(SecurityVersion, Boolean)

Initialisiert eine neue Instanz der WSSecurityTokenSerializer-Klasse.

WSSecurityTokenSerializer(SecurityVersion, TrustVersion, SecureConversationVersion, Boolean, SamlSerializer, SecurityStateEncoder, IEnumerable<Type>, Int32, Int32, Int32)

Initialisiert eine neue Instanz der WSSecurityTokenSerializer-Klasse.

WSSecurityTokenSerializer(SecurityVersion, TrustVersion, SecureConversationVersion, Boolean, SamlSerializer, SecurityStateEncoder, IEnumerable<Type>)

Initialisiert eine neue Instanz der WSSecurityTokenSerializer-Klasse.

WSSecurityTokenSerializer(SecurityVersion)

Initialisiert eine neue Instanz der WSSecurityTokenSerializer-Klasse.

Eigenschaften

Name Beschreibung
DefaultInstance

Ruft eine Standardinstanz dieser Klasse ab.

EmitBspRequiredAttributes

Ruft einen Wert ab, der angibt, ob BSP erforderliche Attribute ausgegeben werden sollen.

MaximumKeyDerivationLabelLength

Ruft die maximale Länge der Tastenableitungsbeschriftung ab.

MaximumKeyDerivationNonceLength

Ruft die maximale Schlüsselableitungs-Noncelänge ab.

MaximumKeyDerivationOffset

Ruft den maximalen Schlüsselableitungsoffset ab.

SecurityVersion

Ruft die Sicherheitsversion ab.

Methoden

Name Beschreibung
CanReadKeyIdentifier(XmlReader)

Bestimmt, ob dieser Serialisierer das element lesen kann, auf das <KeyIdentifier> vom angegebenen XML-Reader verwiesen wird.

(Geerbt von SecurityTokenSerializer)
CanReadKeyIdentifierClause(XmlReader)

Bestimmt, ob dieser Serialisierer eine Klausel in einem <KeyIdentifier> Element lesen kann, auf das vom angegebenen XML-Reader verwiesen wird.

(Geerbt von SecurityTokenSerializer)
CanReadKeyIdentifierClauseCore(XmlReader)

Ruft einen Wert ab, der angibt, ob der Kern der Schlüsselbezeichnerklausel mit dem angegebenen Reader gelesen werden kann.

CanReadKeyIdentifierCore(XmlReader)

Ruft einen Wert ab, der angibt, ob der Schlüsselbezeichnerkern mithilfe des angegebenen Readers gelesen werden kann.

CanReadToken(XmlReader)

Bestimmt, ob dieser Serialisierer das Sicherheitstoken lesen kann, auf das vom angegebenen XML-Reader verwiesen wird.

(Geerbt von SecurityTokenSerializer)
CanReadTokenCore(XmlReader)

Ruft einen Wert ab, der angibt, ob der Tokenkern mit dem angegebenen Reader gelesen werden kann.

CanWriteKeyIdentifier(SecurityKeyIdentifier)

Bestimmt, ob dieser Serialisierer den angegebenen Schlüsselbezeichner schreiben kann.

(Geerbt von SecurityTokenSerializer)
CanWriteKeyIdentifierClause(SecurityKeyIdentifierClause)

Bestimmt, ob dieser Serialisierer die angegebene Schlüsselbezeichnerklausel schreiben kann.

(Geerbt von SecurityTokenSerializer)
CanWriteKeyIdentifierClauseCore(SecurityKeyIdentifierClause)

Ruft einen Wert ab, der angibt, ob der Schlüsselbezeichner-Klauselkern mit einer angegebenen Schlüsselbezeichnerklausel geschrieben werden kann.

CanWriteKeyIdentifierCore(SecurityKeyIdentifier)

Ruft einen Wert ab, der angibt, ob der Schlüsselbezeichnerkern mit einer angegebenen Schlüsselbezeichnerklausel geschrieben werden kann.

CanWriteToken(SecurityToken)

Bestimmt, ob dieser Serialisierer das angegebene Sicherheitstoken in XML schreiben kann.

(Geerbt von SecurityTokenSerializer)
CanWriteTokenCore(SecurityToken)

Ruft einen Wert ab, der angibt, ob der Tokenkern mit einem angegebenen Sicherheitstoken geschrieben werden kann.

CreateKeyIdentifierClauseFromTokenXml(XmlElement, SecurityTokenReferenceStyle)

Erstellt eine Schlüsselbezeichnerklausel aus einem Token, das als XML ausgedrückt wird.

Equals(Object)

Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht.

(Geerbt von Object)
GetHashCode()

Dient als Standardhashfunktion.

(Geerbt von Object)
GetTokenTypeUri(Type)

Ruft den URI des Sicherheitstokens des angegebenen Typs ab.

GetType()

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie der aktuellen Object.

(Geerbt von Object)
ReadKeyIdentifier(XmlReader)

Liest den Schlüsselbezeichner mithilfe des angegebenen XML-Readers.

(Geerbt von SecurityTokenSerializer)
ReadKeyIdentifierClause(XmlReader)

Liest die Schlüsselbezeichnerklausel mithilfe des angegebenen XML-Readers.

(Geerbt von SecurityTokenSerializer)
ReadKeyIdentifierClauseCore(XmlReader)

Liest den Schlüsselbezeichner-Kern mithilfe des angegebenen XmlReader.

ReadKeyIdentifierCore(XmlReader)

Liest den Schlüsselbezeichnerkern mithilfe der angegebenen XmlReader.

ReadToken(XmlReader, SecurityTokenResolver)

Liest das Sicherheitstoken, auf das vom angegebenen XML-Reader verwiesen wird.

(Geerbt von SecurityTokenSerializer)
ReadTokenCore(XmlReader, SecurityTokenResolver)

Liest den Tokenkern mithilfe des angegebenen XmlReader.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)
TryCreateKeyIdentifierClauseFromTokenXml(XmlElement, SecurityTokenReferenceStyle, SecurityKeyIdentifierClause)

Versucht, eine Schlüsselbezeichnerklausel aus einem Token zu erstellen, das als XML ausgedrückt wird.

WriteKeyIdentifier(XmlWriter, SecurityKeyIdentifier)

Schreibt den angegebenen Schlüsselbezeichner mithilfe des angegebenen XML-Writers.

(Geerbt von SecurityTokenSerializer)
WriteKeyIdentifierClause(XmlWriter, SecurityKeyIdentifierClause)

Schreibt die angegebene Schlüsselbezeichnerklausel mithilfe des angegebenen XML-Writers.

(Geerbt von SecurityTokenSerializer)
WriteKeyIdentifierClauseCore(XmlWriter, SecurityKeyIdentifierClause)

Schreibt den Schlüsselbezeichner-Klauselkern mit einer angegebenen Schlüsselbezeichnerklausel mithilfe der angegebenen XmlWriter.

WriteKeyIdentifierCore(XmlWriter, SecurityKeyIdentifier)

Schreibt den Schlüsselbezeichnerkern mit einer angegebenen Schlüsselbezeichnerklausel mithilfe der angegebenen XmlWriter.

WriteToken(XmlWriter, SecurityToken)

Schreibt das angegebene Sicherheitstoken mithilfe des angegebenen XML-Writers.

(Geerbt von SecurityTokenSerializer)
WriteTokenCore(XmlWriter, SecurityToken)

Schreibt den Tokenkern mit einem angegebenen Sicherheitstoken mithilfe des angegebenen XmlWriter.

Gilt für: