WSSecurityTokenSerializer Klass

Definition

Klassen som används för serialisering och deserialisering av säkerhetstoken, säkerhetsnyckelidentifierare och satser för säkerhetsnyckelidentifierare som definierats i WS-Security, WS-Trust och WS-SecureConversation säkerhetsspecifikationer.

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

Exempel

Följande kod visar en anpassad åsidosättning av den här klassen.

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

Konstruktorer

Name Description
WSSecurityTokenSerializer()

Initierar en ny instans av WSSecurityTokenSerializer klassen.

WSSecurityTokenSerializer(Boolean)

Initierar en ny instans av WSSecurityTokenSerializer klassen.

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

Initierar en ny instans av WSSecurityTokenSerializer klassen.

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

Initierar en ny instans av WSSecurityTokenSerializer klassen.

WSSecurityTokenSerializer(SecurityVersion, Boolean, SamlSerializer)

Initierar en ny instans av WSSecurityTokenSerializer klassen.

WSSecurityTokenSerializer(SecurityVersion, Boolean)

Initierar en ny instans av WSSecurityTokenSerializer klassen.

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

Initierar en ny instans av WSSecurityTokenSerializer klassen.

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

Initierar en ny instans av WSSecurityTokenSerializer klassen.

WSSecurityTokenSerializer(SecurityVersion)

Initierar en ny instans av WSSecurityTokenSerializer klassen.

Egenskaper

Name Description
DefaultInstance

Hämtar en standardinstans av den här klassen.

EmitBspRequiredAttributes

Hämtar ett värde som anger om BSP-obligatoriska attribut ska genereras.

MaximumKeyDerivationLabelLength

Hämtar den maximala längden på nyckelhärledningsetiketten.

MaximumKeyDerivationNonceLength

Hämtar maximal nyckelhärlednings nonce-längd.

MaximumKeyDerivationOffset

Hämtar den maximala nyckelavledningsförskjutningen.

SecurityVersion

Hämtar säkerhetsversionen.

Metoder

Name Description
CanReadKeyIdentifier(XmlReader)

Avgör om den här serialiseraren kan läsa elementet <KeyIdentifier> som refereras till av den angivna XML-läsaren.

(Ärvd från SecurityTokenSerializer)
CanReadKeyIdentifierClause(XmlReader)

Avgör om den här serialiseraren kan läsa en sats i ett <KeyIdentifier> element som den angivna XML-läsaren refererar till.

(Ärvd från SecurityTokenSerializer)
CanReadKeyIdentifierClauseCore(XmlReader)

Hämtar ett värde som anger om nyckelidentifierarens satskärna kan läsas med den angivna läsaren.

CanReadKeyIdentifierCore(XmlReader)

Hämtar ett värde som anger om nyckelidentifierarkärnan kan läsas med den angivna läsaren.

CanReadToken(XmlReader)

Avgör om den här serialiseraren kan läsa säkerhetstoken som pekas på av den angivna XML-läsaren.

(Ärvd från SecurityTokenSerializer)
CanReadTokenCore(XmlReader)

Hämtar ett värde som anger om tokenkärnan kan läsas med den angivna läsaren.

CanWriteKeyIdentifier(SecurityKeyIdentifier)

Avgör om serialiseraren kan skriva den angivna nyckelidentifieraren.

(Ärvd från SecurityTokenSerializer)
CanWriteKeyIdentifierClause(SecurityKeyIdentifierClause)

Avgör om den här serialiseraren kan skriva den angivna nyckelidentifierarsatsen.

(Ärvd från SecurityTokenSerializer)
CanWriteKeyIdentifierClauseCore(SecurityKeyIdentifierClause)

Hämtar ett värde som anger om nyckelidentifierarens satskärna med en angiven nyckelidentifierarsats kan skrivas.

CanWriteKeyIdentifierCore(SecurityKeyIdentifier)

Hämtar ett värde som anger om nyckelidentifierarens kärna med en angiven nyckelidentifierarsats kan skrivas.

CanWriteToken(SecurityToken)

Avgör om den här serialiseraren kan skriva den angivna säkerhetstoken till XML.

(Ärvd från SecurityTokenSerializer)
CanWriteTokenCore(SecurityToken)

Hämtar ett värde som anger om tokenkärnan med en angiven säkerhetstoken kan skrivas.

CreateKeyIdentifierClauseFromTokenXml(XmlElement, SecurityTokenReferenceStyle)

Skapar en nyckelidentifierarsats från en token som uttrycks som XML.

Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetTokenTypeUri(Type)

Hämtar URI:n för säkerhetstoken för den angivna typen.

GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
ReadKeyIdentifier(XmlReader)

Läser nyckelidentifieraren med angiven XML-läsare.

(Ärvd från SecurityTokenSerializer)
ReadKeyIdentifierClause(XmlReader)

Läser nyckelidentifierarsatsen med hjälp av den angivna XML-läsaren.

(Ärvd från SecurityTokenSerializer)
ReadKeyIdentifierClauseCore(XmlReader)

Läser nyckelidentifierarens satskärna med den angivna XmlReader.

ReadKeyIdentifierCore(XmlReader)

Läser nyckelidentifierarkärnan med den angivna XmlReader.

ReadToken(XmlReader, SecurityTokenResolver)

Läser säkerhetstoken som pekas på av den angivna XML-läsaren.

(Ärvd från SecurityTokenSerializer)
ReadTokenCore(XmlReader, SecurityTokenResolver)

Läser tokenkärnan med den angivna XmlReader.

ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)
TryCreateKeyIdentifierClauseFromTokenXml(XmlElement, SecurityTokenReferenceStyle, SecurityKeyIdentifierClause)

Försöker skapa en nyckelidentifierarsats från en token som uttrycks som XML.

WriteKeyIdentifier(XmlWriter, SecurityKeyIdentifier)

Skriver den angivna nyckelidentifieraren med den angivna XML-skrivaren.

(Ärvd från SecurityTokenSerializer)
WriteKeyIdentifierClause(XmlWriter, SecurityKeyIdentifierClause)

Skriver den angivna nyckelidentifierarsatsen med den angivna XML-skrivaren.

(Ärvd från SecurityTokenSerializer)
WriteKeyIdentifierClauseCore(XmlWriter, SecurityKeyIdentifierClause)

Skriver nyckelidentifierarens satskärna med en angiven nyckelidentifierare med hjälp av angiven XmlWriter.

WriteKeyIdentifierCore(XmlWriter, SecurityKeyIdentifier)

Skriver nyckelidentifierarens kärna med en angiven nyckelidentifierarsats med den angivna XmlWriter.

WriteToken(XmlWriter, SecurityToken)

Skriver den angivna säkerhetstoken med den angivna XML-skrivaren.

(Ärvd från SecurityTokenSerializer)
WriteTokenCore(XmlWriter, SecurityToken)

Skriver tokenkärnan med en angiven säkerhetstoken med den angivna XmlWriter.

Gäller för