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í.
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
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
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 |
CanReadKeyIdentifierClause(XmlReader) |
Determina si el serializador puede leer una cláusula en un elemento |
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. |