WSSecurityTokenSerializer Clase

Definición

La clase utilizada para serializar y deserializar tokens de seguridad, identificadores de claves de seguridad y cláusulas de identificadores de claves de seguridad definidas en las especificaciones de seguridad WS-Security, WS-Trust y WS-SecureConversation.The class used for serializing and deserializing security tokens, security key identifiers, and security key identifier clauses defined in the WS-Security, WS-Trust, and WS-SecureConversation security specifications.

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

Ejemplos

El código siguiente muestra una invalidación personalizada de esta clase.The following code demonstrates a custom override of this class.

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

Constructores

WSSecurityTokenSerializer()

Inicializa una nueva instancia de la clase WSSecurityTokenSerializer.Initializes a new instance of the WSSecurityTokenSerializer class.

WSSecurityTokenSerializer(Boolean)

Inicializa una nueva instancia de la clase WSSecurityTokenSerializer.Initializes a new instance of the WSSecurityTokenSerializer class.

WSSecurityTokenSerializer(SecurityVersion)

Inicializa una nueva instancia de la clase WSSecurityTokenSerializer.Initializes a new instance of the WSSecurityTokenSerializer class.

WSSecurityTokenSerializer(SecurityVersion, Boolean)

Inicializa una nueva instancia de la clase WSSecurityTokenSerializer.Initializes a new instance of the WSSecurityTokenSerializer class.

WSSecurityTokenSerializer(SecurityVersion, Boolean, SamlSerializer)

Inicializa una nueva instancia de la clase WSSecurityTokenSerializer.Initializes a new instance of the WSSecurityTokenSerializer class.

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

Inicializa una nueva instancia de la clase WSSecurityTokenSerializer.Initializes a new instance of the WSSecurityTokenSerializer class.

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

Inicializa una nueva instancia de la clase WSSecurityTokenSerializer.Initializes a new instance of the WSSecurityTokenSerializer class.

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

Inicializa una nueva instancia de la clase WSSecurityTokenSerializer.Initializes a new instance of the WSSecurityTokenSerializer class.

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

Inicializa una nueva instancia de la clase WSSecurityTokenSerializer.Initializes a new instance of the WSSecurityTokenSerializer class.

Propiedades

DefaultInstance

Obtiene una instancia predeterminada de esta clase.Gets a default instance of this class.

EmitBspRequiredAttributes

Obtiene un valor que indica si se van a emitir los atributos BSP requeridos.Gets a value that indicates whether to emit BSP required attributes.

MaximumKeyDerivationLabelLength

Obtiene la longitud de etiqueta de derivación de clave máxima.Gets the maximum key derivation label length.

MaximumKeyDerivationNonceLength

Obtiene la longitud del valor de seguridad de derivación de clave máxima.Gets the maximum key derivation nonce length.

MaximumKeyDerivationOffset

Obtiene el desplazamiento de derivación de clave máximo.Gets the maximum key derivation offset.

SecurityVersion

Obtiene la versión de seguridad.Gets the security version.

Métodos

CanReadKeyIdentifier(XmlReader)

Determina si este serializador puede leer el elemento <KeyIdentifier> al que hace referencia el lector especificado XML.Determines whether this serializer can read the <KeyIdentifier> element referred to by the specified XML reader.

(Heredado de SecurityTokenSerializer)
CanReadKeyIdentifierClause(XmlReader)

Determina si el serializador puede leer una cláusula en un elemento <KeyIdentifier> al que el lector XML especificado hace referencia.Determines whether this serializer can read a clause in a <KeyIdentifier> element referred to by the specified XML reader.

(Heredado de SecurityTokenSerializer)
CanReadKeyIdentifierClauseCore(XmlReader)

Obtiene un valor que indica si el núcleo de cláusula identificador clave se puede leer utilizando el lector especificado.Gets a value that indicates whether the key identifier clause core can be read using the specified reader.

CanReadKeyIdentifierCore(XmlReader)

Obtiene un valor que indica si el núcleo identificador clave se puede leer utilizando el lector especificado.Gets a value that indicates whether the key identifier core can be read using the specified reader.

CanReadToken(XmlReader)

Determina si este serializador puede leer el token de seguridad que señala el lector XML especificado.Determines whether this serializer can read the security token pointed at by the specified XML reader.

(Heredado de SecurityTokenSerializer)
CanReadTokenCore(XmlReader)

Obtiene un valor que indica si el núcleo del token se puede leer utilizando el lector especificado.Gets a value that indicates whether the token core can be read using the specified reader.

CanWriteKeyIdentifier(SecurityKeyIdentifier)

Determina si este serializador puede escribir el identificador clave especificado.Determines whether this serializer can write the specified key identifier.

(Heredado de SecurityTokenSerializer)
CanWriteKeyIdentifierClause(SecurityKeyIdentifierClause)

Determina si este serializador puede escribir la cláusula del identificador de la clave especificado.Determines whether this serializer can write the specified key identifier clause.

(Heredado de SecurityTokenSerializer)
CanWriteKeyIdentifierClauseCore(SecurityKeyIdentifierClause)

Obtiene un valor que indica si se puede escribir el núcleo de cláusula identificador clave con una cláusula identificador clave especificada.Gets a value that indicates whether the key identifier clause core with a specified key identifier clause can be written.

CanWriteKeyIdentifierCore(SecurityKeyIdentifier)

Obtiene un valor que indica si se puede escribir el núcleo identificador clave con una cláusula identificador clave especificada.Gets a value that indicates whether the key identifier core with a specified key identifier clause can be written.

CanWriteToken(SecurityToken)

Determina si este serializador puede escribir el token de seguridad especificado en XML.Determines whether this serializer can write the specified security token to XML.

(Heredado de SecurityTokenSerializer)
CanWriteTokenCore(SecurityToken)

Obtiene un valor que indica si se puede escribir el núcleo del token con un token de seguridad especificado.Gets a value that indicates whether the token core with a specified security token can be written.

CreateKeyIdentifierClauseFromTokenXml(XmlElement, SecurityTokenReferenceStyle)

Crea una cláusula identificador clave a partir de un token expresado como XML.Creates a key identifier clause from a token expressed as XML.

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.Determines whether the specified object is equal to the current object.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.Serves as the default hash function.

(Heredado de Object)
GetTokenTypeUri(Type)

Obtiene el identificador URI del token de seguridad del tipo especificado.Gets the URI of the security token of the specified type.

GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.Creates a shallow copy of the current Object.

(Heredado de Object)
ReadKeyIdentifier(XmlReader)

Lee el identificador clave mediante el lector especificado XML.Reads the key identifier using specified XML reader.

(Heredado de SecurityTokenSerializer)
ReadKeyIdentifierClause(XmlReader)

Lee la cláusula de identificador clave mediante el lector especificado XML.Reads the key identifier clause using specified XML reader.

(Heredado de SecurityTokenSerializer)
ReadKeyIdentifierClauseCore(XmlReader)

Lee el núcleo de cláusula identificador clave mediante el XmlReaderespecificado.Reads the key identifier clause core using the specified XmlReader.

ReadKeyIdentifierCore(XmlReader)

Lee el núcleo identificador clave mediante el XmlReaderespecificado.Reads the key identifier core using the specified XmlReader.

ReadToken(XmlReader, SecurityTokenResolver)

Lee el token de seguridad señalado por el lector especificado XML .Reads the security token pointed at by the specified XML reader.

(Heredado de SecurityTokenSerializer)
ReadTokenCore(XmlReader, SecurityTokenResolver)

Lee el núcleo del token mediante el XmlReaderespecificado.Reads the token core using the specified XmlReader.

ToString()

Devuelve una cadena que representa el objeto actual.Returns a string that represents the current object.

(Heredado de Object)
TryCreateKeyIdentifierClauseFromTokenXml(XmlElement, SecurityTokenReferenceStyle, SecurityKeyIdentifierClause)

Intenta crear una cláusula de identificador de clave a partir de un token expresado como XML.Attempts to create a key identifier clause from a token expressed as XML.

WriteKeyIdentifier(XmlWriter, SecurityKeyIdentifier)

Escribe el identificador clave especificado mediante el sistema de escritura especificado XML.Writes the specified key identifier using the specified XML writer.

(Heredado de SecurityTokenSerializer)
WriteKeyIdentifierClause(XmlWriter, SecurityKeyIdentifierClause)

Escribe la cláusula de identificador clave especificado mediante el sistema de escritura especificado XML.Writes the specified key identifier clause using the specified XML writer.

(Heredado de SecurityTokenSerializer)
WriteKeyIdentifierClauseCore(XmlWriter, SecurityKeyIdentifierClause)

Escribe el núcleo de cláusula identificador clave con una cláusula identificador clave especificada utilizando el XmlWriterespecificado.Writes the key identifier clause core with a specified key identifier clause using the specified XmlWriter.

WriteKeyIdentifierCore(XmlWriter, SecurityKeyIdentifier)

Escribe el núcleo del identificador clave con una cláusula identificador clave especificada utilizando el XmlWriterespecificado.Writes the key identifier core with a specified key identifier clause using the specified XmlWriter.

WriteToken(XmlWriter, SecurityToken)

Escribe el token de seguridad especificado mediante el sistema de escritura especificado XML.Writes the specified security token using the specified XML writer.

(Heredado de SecurityTokenSerializer)
WriteTokenCore(XmlWriter, SecurityToken)

Escribe el núcleo del token con un token de seguridad especificado utilizando el XmlWriterespecificado.Writes the token core with a specified security token using the specified XmlWriter.

Se aplica a