Partager via


WSSecurityTokenSerializer Classe

Définition

La classe utilisée pour sérialiser et désérialiser les jetons de sécurité, les identificateurs de clés de sécurité et les clauses d'identificateur de clé de sécurité définis dans les spécifications de sécurité de WS-Security, WS-Trust et 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
Héritage
WSSecurityTokenSerializer

Exemples

Le code suivant illustre une substitution personnalisée de cette classe.

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

Constructeurs

WSSecurityTokenSerializer()

Initialise une nouvelle instance de la classe WSSecurityTokenSerializer.

WSSecurityTokenSerializer(Boolean)

Initialise une nouvelle instance de la classe WSSecurityTokenSerializer.

WSSecurityTokenSerializer(SecurityVersion)

Initialise une nouvelle instance de la classe WSSecurityTokenSerializer.

WSSecurityTokenSerializer(SecurityVersion, Boolean)

Initialise une nouvelle instance de la classe WSSecurityTokenSerializer.

WSSecurityTokenSerializer(SecurityVersion, Boolean, SamlSerializer)

Initialise une nouvelle instance de la classe WSSecurityTokenSerializer.

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

Initialise une nouvelle instance de la classe WSSecurityTokenSerializer.

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

Initialise une nouvelle instance de la classe WSSecurityTokenSerializer.

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

Initialise une nouvelle instance de la classe WSSecurityTokenSerializer.

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

Initialise une nouvelle instance de la classe WSSecurityTokenSerializer.

Propriétés

DefaultInstance

Obtient une instance par défaut de cette classe.

EmitBspRequiredAttributes

Obtient une valeur qui indique si les attributs BSP obligatoires doivent être émis.

MaximumKeyDerivationLabelLength

Obtient la longueur d'étiquette de dérivation de clé maximale.

MaximumKeyDerivationNonceLength

Obtient la longueur de la valeur à usage unique de dérivation de clé maximale.

MaximumKeyDerivationOffset

Obtient l'offset de dérivation de clé maximal.

SecurityVersion

Obtient la version de sécurité.

Méthodes

CanReadKeyIdentifier(XmlReader)

Détermine si ce sérialiseur peut lire l'élément <KeyIdentifier> auquel le lecteur XML spécifié fait référence.

(Hérité de SecurityTokenSerializer)
CanReadKeyIdentifierClause(XmlReader)

Détermine si le sérialiseur peut lire une clause dans un élément <KeyIdentifier> auquel le lecteur XML précisé fait référence.

(Hérité de SecurityTokenSerializer)
CanReadKeyIdentifierClauseCore(XmlReader)

Obtient une valeur qui indique si le cœur de clause d'identificateur de clé peut être lu à l'aide du lecteur spécifié.

CanReadKeyIdentifierCore(XmlReader)

Obtient une valeur qui indique si le cœur d'identificateur de clé peut être lu à l'aide du lecteur spécifié.

CanReadToken(XmlReader)

Détermine si ce sérialiseur peut lire le jeton de sécurité pointé par le lecteur XML spécifié.

(Hérité de SecurityTokenSerializer)
CanReadTokenCore(XmlReader)

Obtient une valeur qui indique si le cœur de jeton peut être lu à l'aide du lecteur spécifié.

CanWriteKeyIdentifier(SecurityKeyIdentifier)

Détermine si ce sérialiseur peut écrire l'identificateur clé spécifié.

(Hérité de SecurityTokenSerializer)
CanWriteKeyIdentifierClause(SecurityKeyIdentifierClause)

Détermine si ce sérialiseur peut écrire la clause d'identificateur de clé spécifiée.

(Hérité de SecurityTokenSerializer)
CanWriteKeyIdentifierClauseCore(SecurityKeyIdentifierClause)

Obtient une valeur qui indique si le cœur de clause d'identificateur de clé à la clause d'identificateur clé spécifiée peut être écrit.

CanWriteKeyIdentifierCore(SecurityKeyIdentifier)

Obtient une valeur qui indique si le cœur d'identificateur de clé à la clause d'identificateur de clé spécifiée peut être écrit.

CanWriteToken(SecurityToken)

Détermine si ce sérialiseur peut écrire le jeton de sécurité spécifié en format XML.

(Hérité de SecurityTokenSerializer)
CanWriteTokenCore(SecurityToken)

Obtient une valeur qui indique si le cœur de jeton au jeton de sécurité spécifié peut être écrit.

CreateKeyIdentifierClauseFromTokenXml(XmlElement, SecurityTokenReferenceStyle)

Crée une clause d'identificateur de clé à partir d'un jeton exprimé sous forme de XML.

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetTokenTypeUri(Type)

Obtient l'URI du jeton de sécurité du type spécifié.

GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ReadKeyIdentifier(XmlReader)

Lit l'identificateur de clé à l'aide du lecteur XML spécifié.

(Hérité de SecurityTokenSerializer)
ReadKeyIdentifierClause(XmlReader)

Lit la clause d'identificateur de clé à l'aide du lecteur XML spécifié.

(Hérité de SecurityTokenSerializer)
ReadKeyIdentifierClauseCore(XmlReader)

Lit le cœur de clause d'identificateur de clé à l'aide du XmlReader spécifié.

ReadKeyIdentifierCore(XmlReader)

Lit le cœur d'identificateur de clé à l'aide du XmlReader spécifié.

ReadToken(XmlReader, SecurityTokenResolver)

Lit le jeton de sécurité pointé par le lecteur XML spécifié.

(Hérité de SecurityTokenSerializer)
ReadTokenCore(XmlReader, SecurityTokenResolver)

Lit le cœur de jeton à l'aide du XmlReader spécifié.

ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)
TryCreateKeyIdentifierClauseFromTokenXml(XmlElement, SecurityTokenReferenceStyle, SecurityKeyIdentifierClause)

Tente de créer une clause d'identificateur de clé à partir d'un jeton exprimé sous forme de XML.

WriteKeyIdentifier(XmlWriter, SecurityKeyIdentifier)

Écrit l'identificateur de clé spécifié à l'aide du writer XML spécifié.

(Hérité de SecurityTokenSerializer)
WriteKeyIdentifierClause(XmlWriter, SecurityKeyIdentifierClause)

Écrit la clause d'identificateur de clé spécifiée à l'aide du writer XML spécifié.

(Hérité de SecurityTokenSerializer)
WriteKeyIdentifierClauseCore(XmlWriter, SecurityKeyIdentifierClause)

Écrit le cœur de clause d'identificateur de clé à la clause d'identificateur de clé spécifiée à l'aide du XmlWriter spécifié.

WriteKeyIdentifierCore(XmlWriter, SecurityKeyIdentifier)

Écrit le cœur d'identificateur de clé à la clause d'identificateur de clé spécifiée à l'aide du XmlWriter spécifié.

WriteToken(XmlWriter, SecurityToken)

Écrit le jeton de sécurité spécifié à l'aide du writer XML spécifié.

(Hérité de SecurityTokenSerializer)
WriteTokenCore(XmlWriter, SecurityToken)

Écrit le cœur de jeton au jeton de sécurité spécifié à l'aide du XmlWriter spécifié.

S’applique à