WSSecurityTokenSerializer Classe

Définition

Classe utilisée pour sérialiser et désérialiser les jetons de sécurité, les identificateurs de clé de sécurité et les clauses d’identificateur de clé de sécurité définies dans WS-Security, WS-Trust et WS-SecureConversation spécifications de sécurité.

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 un remplacement personnalisé 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

Nom Description
WSSecurityTokenSerializer()

Initialise une nouvelle instance de la classe WSSecurityTokenSerializer.

WSSecurityTokenSerializer(Boolean)

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, Boolean, SamlSerializer, SecurityStateEncoder, IEnumerable<Type>)

Initialise une nouvelle instance de la classe WSSecurityTokenSerializer.

WSSecurityTokenSerializer(SecurityVersion, Boolean, SamlSerializer)

Initialise une nouvelle instance de la classe WSSecurityTokenSerializer.

WSSecurityTokenSerializer(SecurityVersion, Boolean)

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.

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

Initialise une nouvelle instance de la classe WSSecurityTokenSerializer.

WSSecurityTokenSerializer(SecurityVersion)

Initialise une nouvelle instance de la classe WSSecurityTokenSerializer.

Propriétés

Nom Description
DefaultInstance

Obtient une instance par défaut de cette classe.

EmitBspRequiredAttributes

Obtient une valeur qui indique s’il faut émettre des attributs BSP requis.

MaximumKeyDerivationLabelLength

Obtient la longueur maximale de l’étiquette de dérivation de clé.

MaximumKeyDerivationNonceLength

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

MaximumKeyDerivationOffset

Obtient le décalage de dérivation de clé maximale.

SecurityVersion

Obtient la version de sécurité.

Méthodes

Nom Description
CanReadKeyIdentifier(XmlReader)

Détermine si ce sérialiseur peut lire l’élément <KeyIdentifier> référencé par le lecteur XML spécifié.

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

Détermine si ce sérialiseur peut lire une clause dans un <KeyIdentifier> élément référencé par le lecteur XML spécifié.

(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 de 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é avec une clause d’identificateur de clé spécifiée peut être écrit.

CanWriteKeyIdentifierCore(SecurityKeyIdentifier)

Obtient une valeur qui indique si le cœur d’identificateur de clé avec une 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é dans XML.

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

Obtient une valeur qui indique si le cœur de jeton avec un 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é en xml.

Equals(Object)

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

(Hérité de Object)
GetHashCode()

Sert 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 la Type de l’instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Objectactuel.

(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 de l’élément spécifié XmlReader.

ReadKeyIdentifierCore(XmlReader)

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

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

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é en xml.

WriteKeyIdentifier(XmlWriter, SecurityKeyIdentifier)

Écrit l’identificateur de clé spécifié à l’aide de l’enregistreur XML spécifié.

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

Écrit la clause d’identificateur de clé spécifiée à l’aide de l’enregistreur XML spécifié.

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

Écrit le cœur de clause d’identificateur de clé avec une clause d’identificateur de clé spécifiée à l’aide de l’identificateur de clé spécifié XmlWriter.

WriteKeyIdentifierCore(XmlWriter, SecurityKeyIdentifier)

Écrit le cœur d’identificateur de clé avec une clause d’identificateur de clé spécifiée à l’aide de l’identificateur de clé spécifié XmlWriter.

WriteToken(XmlWriter, SecurityToken)

Écrit le jeton de sécurité spécifié à l’aide de l’enregistreur XML spécifié.

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

Écrit le cœur de jeton avec un jeton de sécurité spécifié à l’aide du jeton spécifié XmlWriter.

S’applique à