Comparteix a través de


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.

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.

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.

WSSecurityTokenSerializer(Boolean)

Inicializa una nueva instancia de la clase WSSecurityTokenSerializer.

WSSecurityTokenSerializer(SecurityVersion)

Inicializa una nueva instancia de la clase WSSecurityTokenSerializer.

WSSecurityTokenSerializer(SecurityVersion, Boolean)

Inicializa una nueva instancia de la clase WSSecurityTokenSerializer.

WSSecurityTokenSerializer(SecurityVersion, Boolean, SamlSerializer)

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

Inicializa una nueva instancia de la clase WSSecurityTokenSerializer.

Propiedades

DefaultInstance

Obtiene una instancia predeterminada de esta clase.

EmitBspRequiredAttributes

Obtiene un valor que indica si se van a emitir los atributos BSP requeridos.

MaximumKeyDerivationLabelLength

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

MaximumKeyDerivationNonceLength

Obtiene la longitud del valor de seguridad de derivación de clave máxima.

MaximumKeyDerivationOffset

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

SecurityVersion

Obtiene la versión de seguridad.

Métodos

CanReadKeyIdentifier(XmlReader)

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

(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.

(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.

CanReadKeyIdentifierCore(XmlReader)

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

CanReadToken(XmlReader)

Determina si este serializador puede leer el token de seguridad que señala el lector XML especificado.

(Heredado de SecurityTokenSerializer)
CanReadTokenCore(XmlReader)

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

CanWriteKeyIdentifier(SecurityKeyIdentifier)

Determina si este serializador puede escribir el identificador clave especificado.

(Heredado de SecurityTokenSerializer)
CanWriteKeyIdentifierClause(SecurityKeyIdentifierClause)

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

(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.

CanWriteKeyIdentifierCore(SecurityKeyIdentifier)

Obtiene un valor que indica si se puede escribir el núcleo identificador clave con una cláusula identificador 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 identificador clave a partir de un token expresado como XML.

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetTokenTypeUri(Type)

Obtiene el identificador 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 Object actual.

(Heredado de Object)
ReadKeyIdentifier(XmlReader)

Lee el identificador clave mediante el lector especificado XML.

(Heredado de SecurityTokenSerializer)
ReadKeyIdentifierClause(XmlReader)

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

(Heredado de SecurityTokenSerializer)
ReadKeyIdentifierClauseCore(XmlReader)

Lee el núcleo de cláusula identificador clave mediante el XmlReaderespecificado.

ReadKeyIdentifierCore(XmlReader)

Lee el núcleo identificador clave mediante el XmlReaderespecificado.

ReadToken(XmlReader, SecurityTokenResolver)

Lee el token de seguridad señalado por el lector especificado XML .

(Heredado de SecurityTokenSerializer)
ReadTokenCore(XmlReader, SecurityTokenResolver)

Lee el núcleo del token mediante el XmlReaderespecificado.

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 clave especificado mediante el sistema de escritura especificado XML.

(Heredado de SecurityTokenSerializer)
WriteKeyIdentifierClause(XmlWriter, SecurityKeyIdentifierClause)

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

(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.

WriteKeyIdentifierCore(XmlWriter, SecurityKeyIdentifier)

Escribe el núcleo del identificador clave con una cláusula identificador clave especificada utilizando el XmlWriterespecificado.

WriteToken(XmlWriter, SecurityToken)

Escribe el token de seguridad especificado mediante el sistema de escritura especificado XML.

(Heredado de SecurityTokenSerializer)
WriteTokenCore(XmlWriter, SecurityToken)

Escribe el núcleo del token con un token de seguridad especificado utilizando el XmlWriterespecificado.

Se aplica a