WSSecurityTokenSerializer Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
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
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 |
| CanReadKeyIdentifierClause(XmlReader) |
Determina si este serializador puede leer una cláusula en un |
| 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. |