WSSecurityTokenSerializer Clase

Definición

Clase que se usa para serializar y deserializar tokens de seguridad, identificadores de clave de seguridad y cláusulas de identificador de clave de seguridad definidas en las especificaciones de seguridad WS-Security, WS-Trust y 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
Herencia
WSSecurityTokenSerializer

Ejemplos

En el código siguiente se muestra una invalidación personalizada de esta clase.

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

Nombre Description
WSSecurityTokenSerializer()

Inicializa una nueva instancia de la clase WSSecurityTokenSerializer.

WSSecurityTokenSerializer(Boolean)

Inicializa una nueva instancia de la clase WSSecurityTokenSerializer.

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

Inicializa una nueva instancia de la clase WSSecurityTokenSerializer.

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

Inicializa una nueva instancia de la clase WSSecurityTokenSerializer.

WSSecurityTokenSerializer(SecurityVersion, Boolean, SamlSerializer)

Inicializa una nueva instancia de la clase WSSecurityTokenSerializer.

WSSecurityTokenSerializer(SecurityVersion, Boolean)

Inicializa una nueva instancia de la clase WSSecurityTokenSerializer.

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

Inicializa una nueva instancia de la clase WSSecurityTokenSerializer.

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

Inicializa una nueva instancia de la clase WSSecurityTokenSerializer.

WSSecurityTokenSerializer(SecurityVersion)

Inicializa una nueva instancia de la clase WSSecurityTokenSerializer.

Propiedades

Nombre Description
DefaultInstance

Obtiene una instancia predeterminada de esta clase.

EmitBspRequiredAttributes

Obtiene un valor que indica si se van a emitir atributos necesarios de BSP.

MaximumKeyDerivationLabelLength

Obtiene la longitud máxima de la etiqueta de derivación de clave.

MaximumKeyDerivationNonceLength

Obtiene la longitud máxima de derivación de clave nonce.

MaximumKeyDerivationOffset

Obtiene el desplazamiento máximo de derivación de clave.

SecurityVersion

Obtiene la versión de seguridad.

Métodos

Nombre Description
CanReadKeyIdentifier(XmlReader)

Determina si este serializador puede leer el <KeyIdentifier> elemento al que hace referencia el lector XML especificado.

(Heredado de SecurityTokenSerializer)
CanReadKeyIdentifierClause(XmlReader)

Determina si este serializador puede leer una cláusula en un <KeyIdentifier> elemento al que hace referencia el lector XML especificado.

(Heredado de SecurityTokenSerializer)
CanReadKeyIdentifierClauseCore(XmlReader)

Obtiene un valor que indica si el núcleo de la cláusula de identificador de clave se puede leer mediante el lector especificado.

CanReadKeyIdentifierCore(XmlReader)

Obtiene un valor que indica si el núcleo del identificador de clave se puede leer mediante el lector especificado.

CanReadToken(XmlReader)

Determina si este serializador puede leer el token de seguridad al que apunta el lector XML especificado.

(Heredado de SecurityTokenSerializer)
CanReadTokenCore(XmlReader)

Obtiene un valor que indica si el núcleo del token se puede leer mediante el lector especificado.

CanWriteKeyIdentifier(SecurityKeyIdentifier)

Determina si este serializador puede escribir el identificador de clave especificado.

(Heredado de SecurityTokenSerializer)
CanWriteKeyIdentifierClause(SecurityKeyIdentifierClause)

Determina si este serializador puede escribir la cláusula de identificador de clave especificada.

(Heredado de SecurityTokenSerializer)
CanWriteKeyIdentifierClauseCore(SecurityKeyIdentifierClause)

Obtiene un valor que indica si se puede escribir el núcleo de la cláusula de identificador de clave con una cláusula de identificador de clave especificada.

CanWriteKeyIdentifierCore(SecurityKeyIdentifier)

Obtiene un valor que indica si se puede escribir el núcleo del identificador de clave con una cláusula de identificador de clave especificada.

CanWriteToken(SecurityToken)

Determina si este serializador puede escribir el token de seguridad especificado en 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.

CreateKeyIdentifierClauseFromTokenXml(XmlElement, SecurityTokenReferenceStyle)

Crea una cláusula de identificador de clave a partir de un token expresado como XML.

Equals(Object)

Determina si el objeto especificado es igual al objeto actual.

(Heredado de Object)
GetHashCode()

Actúa como función hash predeterminada.

(Heredado de Object)
GetTokenTypeUri(Type)

Obtiene el URI del token de seguridad del tipo especificado.

GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Objectactual.

(Heredado de Object)
ReadKeyIdentifier(XmlReader)

Lee el identificador de clave mediante el lector XML especificado.

(Heredado de SecurityTokenSerializer)
ReadKeyIdentifierClause(XmlReader)

Lee la cláusula de identificador de clave mediante el lector XML especificado.

(Heredado de SecurityTokenSerializer)
ReadKeyIdentifierClauseCore(XmlReader)

Lee el núcleo de la cláusula de identificador de clave mediante el especificado XmlReader.

ReadKeyIdentifierCore(XmlReader)

Lee el núcleo del identificador de clave mediante el especificado XmlReader.

ReadToken(XmlReader, SecurityTokenResolver)

Lee el token de seguridad al que apunta el lector XML especificado.

(Heredado de SecurityTokenSerializer)
ReadTokenCore(XmlReader, SecurityTokenResolver)

Lee el núcleo del token mediante el especificado XmlReader.

ToString()

Devuelve una cadena que representa el objeto actual.

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

Intenta crear una cláusula de identificador de clave a partir de un token expresado como XML.

WriteKeyIdentifier(XmlWriter, SecurityKeyIdentifier)

Escribe el identificador de clave especificado mediante el sistema de escritura XML especificado.

(Heredado de SecurityTokenSerializer)
WriteKeyIdentifierClause(XmlWriter, SecurityKeyIdentifierClause)

Escribe la cláusula de identificador de clave especificada mediante el sistema de escritura XML especificado.

(Heredado de SecurityTokenSerializer)
WriteKeyIdentifierClauseCore(XmlWriter, SecurityKeyIdentifierClause)

Escribe el núcleo de la cláusula de identificador de clave con una cláusula de identificador de clave especificada mediante el especificado XmlWriter.

WriteKeyIdentifierCore(XmlWriter, SecurityKeyIdentifier)

Escribe el núcleo del identificador de clave con una cláusula de identificador de clave especificada mediante el especificado XmlWriter.

WriteToken(XmlWriter, SecurityToken)

Escribe el token de seguridad especificado mediante el escritor XML especificado.

(Heredado de SecurityTokenSerializer)
WriteTokenCore(XmlWriter, SecurityToken)

Escribe el núcleo del token con un token de seguridad especificado mediante el especificado XmlWriter.

Se aplica a