Udostępnij za pośrednictwem


WSSecurityTokenSerializer Klasa

Definicja

Klasa używana do serializacji i deserializacji tokenów zabezpieczających, identyfikatorów kluczy zabezpieczeń i klauzul identyfikatora klucza zabezpieczeń zdefiniowanych w specyfikacjach zabezpieczeń WS-Security, WS-Trust i WS-SecureConversation.

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
Dziedziczenie
WSSecurityTokenSerializer

Przykłady

Poniższy kod przedstawia niestandardowe zastąpienie tej klasy.

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

Konstruktory

WSSecurityTokenSerializer()

Inicjuje nowe wystąpienie klasy WSSecurityTokenSerializer.

WSSecurityTokenSerializer(Boolean)

Inicjuje nowe wystąpienie klasy WSSecurityTokenSerializer.

WSSecurityTokenSerializer(SecurityVersion)

Inicjuje nowe wystąpienie klasy WSSecurityTokenSerializer.

WSSecurityTokenSerializer(SecurityVersion, Boolean)

Inicjuje nowe wystąpienie klasy WSSecurityTokenSerializer.

WSSecurityTokenSerializer(SecurityVersion, Boolean, SamlSerializer)

Inicjuje nowe wystąpienie klasy WSSecurityTokenSerializer.

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

Inicjuje nowe wystąpienie klasy WSSecurityTokenSerializer.

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

Inicjuje nowe wystąpienie klasy WSSecurityTokenSerializer.

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

Inicjuje nowe wystąpienie klasy WSSecurityTokenSerializer.

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

Inicjuje nowe wystąpienie klasy WSSecurityTokenSerializer.

Właściwości

DefaultInstance

Pobiera domyślne wystąpienie tej klasy.

EmitBspRequiredAttributes

Pobiera wartość wskazującą, czy emitować wymagane atrybuty BSP.

MaximumKeyDerivationLabelLength

Pobiera maksymalną długość etykiety wyprowadzania klucza.

MaximumKeyDerivationNonceLength

Pobiera maksymalną długość wyprowadzania klucza.

MaximumKeyDerivationOffset

Pobiera maksymalne przesunięcie wyprowadzania klucza.

SecurityVersion

Pobiera wersję zabezpieczeń.

Metody

CanReadKeyIdentifier(XmlReader)

Określa, czy ten serializator może odczytać <KeyIdentifier> element, do których odwołuje się określony czytnik XML.

(Odziedziczone po SecurityTokenSerializer)
CanReadKeyIdentifierClause(XmlReader)

Określa, czy ten serializator może odczytać klauzulę w <KeyIdentifier> elemecie określonym czytnikiem XML.

(Odziedziczone po SecurityTokenSerializer)
CanReadKeyIdentifierClauseCore(XmlReader)

Pobiera wartość wskazującą, czy rdzeń klauzuli identyfikatora klucza może być odczytywany przy użyciu określonego czytnika.

CanReadKeyIdentifierCore(XmlReader)

Pobiera wartość wskazującą, czy rdzeń identyfikatora klucza może być odczytywany przy użyciu określonego czytnika.

CanReadToken(XmlReader)

Określa, czy ten serializator może odczytać token zabezpieczający wskazywany przez określony czytnik XML.

(Odziedziczone po SecurityTokenSerializer)
CanReadTokenCore(XmlReader)

Pobiera wartość wskazującą, czy rdzeń tokenu można odczytać przy użyciu określonego czytnika.

CanWriteKeyIdentifier(SecurityKeyIdentifier)

Określa, czy ten serializator może zapisać określony identyfikator klucza.

(Odziedziczone po SecurityTokenSerializer)
CanWriteKeyIdentifierClause(SecurityKeyIdentifierClause)

Określa, czy ten serializator może zapisać określoną klauzulę identyfikatora klucza.

(Odziedziczone po SecurityTokenSerializer)
CanWriteKeyIdentifierClauseCore(SecurityKeyIdentifierClause)

Pobiera wartość wskazującą, czy można zapisać rdzeń klauzuli identyfikatora klucza z określoną klauzulą identyfikatora klucza.

CanWriteKeyIdentifierCore(SecurityKeyIdentifier)

Pobiera wartość wskazującą, czy można zapisać rdzeń identyfikatora klucza z określoną klauzulą identyfikatora klucza.

CanWriteToken(SecurityToken)

Określa, czy ten serializator może zapisać określony token zabezpieczający w formacie XML.

(Odziedziczone po SecurityTokenSerializer)
CanWriteTokenCore(SecurityToken)

Pobiera wartość wskazującą, czy można zapisać rdzeń tokenu z określonym tokenem zabezpieczającym.

CreateKeyIdentifierClauseFromTokenXml(XmlElement, SecurityTokenReferenceStyle)

Tworzy klauzulę identyfikatora klucza na podstawie tokenu wyrażonego jako XML.

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetTokenTypeUri(Type)

Pobiera identyfikator URI tokenu zabezpieczającego określonego typu.

GetType()

Type Pobiera bieżące wystąpienie.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ReadKeyIdentifier(XmlReader)

Odczytuje identyfikator klucza przy użyciu określonego czytnika XML.

(Odziedziczone po SecurityTokenSerializer)
ReadKeyIdentifierClause(XmlReader)

Odczytuje klauzulę identyfikatora klucza przy użyciu określonego czytnika XML.

(Odziedziczone po SecurityTokenSerializer)
ReadKeyIdentifierClauseCore(XmlReader)

Odczytuje rdzeń klauzuli identyfikatora klucza przy użyciu określonego XmlReaderelementu .

ReadKeyIdentifierCore(XmlReader)

Odczytuje rdzeń identyfikatora klucza przy użyciu określonego XmlReaderelementu .

ReadToken(XmlReader, SecurityTokenResolver)

Odczytuje token zabezpieczający wskazywany przez określony czytnik XML.

(Odziedziczone po SecurityTokenSerializer)
ReadTokenCore(XmlReader, SecurityTokenResolver)

Odczytuje rdzeń tokenu przy użyciu określonego XmlReaderelementu .

ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)
TryCreateKeyIdentifierClauseFromTokenXml(XmlElement, SecurityTokenReferenceStyle, SecurityKeyIdentifierClause)

Próbuje utworzyć klauzulę identyfikatora klucza na podstawie tokenu wyrażonego jako XML.

WriteKeyIdentifier(XmlWriter, SecurityKeyIdentifier)

Zapisuje określony identyfikator klucza przy użyciu określonego modułu zapisywania XML.

(Odziedziczone po SecurityTokenSerializer)
WriteKeyIdentifierClause(XmlWriter, SecurityKeyIdentifierClause)

Zapisuje określoną klauzulę identyfikatora klucza przy użyciu określonego składnika zapisywania XML.

(Odziedziczone po SecurityTokenSerializer)
WriteKeyIdentifierClauseCore(XmlWriter, SecurityKeyIdentifierClause)

Zapisuje rdzeń klauzuli identyfikatora klucza z określoną klauzulą identyfikatora klucza przy użyciu określonej XmlWriterklauzuli .

WriteKeyIdentifierCore(XmlWriter, SecurityKeyIdentifier)

Zapisuje rdzeń identyfikatora klucza z określoną klauzulą identyfikatora klucza przy użyciu określonej XmlWriterklauzuli .

WriteToken(XmlWriter, SecurityToken)

Zapisuje określony token zabezpieczający przy użyciu określonego modułu zapisywania XML.

(Odziedziczone po SecurityTokenSerializer)
WriteTokenCore(XmlWriter, SecurityToken)

Zapisuje rdzeń tokenu przy użyciu określonego tokenu zabezpieczającego przy użyciu określonego XmlWriterelementu .

Dotyczy