WSSecurityTokenSerializer Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
A classe usada para serializar e desserializar os tokens de segurança, identificadores de chave de segurança e cláusulas de identificador de chave de segurança definidas nas especificações de segurança de WS-Security, WS-Trust e 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
- Herança
Exemplos
O código a seguir demonstra uma substituição personalizada dessa classe.
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
Construtores
Propriedades
DefaultInstance |
Obtém uma instância padrão dessa classe. |
EmitBspRequiredAttributes |
Obtém um valor que indica se os atributos exigidos por BSP devem ser emitidos. |
MaximumKeyDerivationLabelLength |
Obtém o tamanho máximo do rótulo de derivação de chave. |
MaximumKeyDerivationNonceLength |
Obtém o tamanho máximo do nonce de derivação de chave. |
MaximumKeyDerivationOffset |
Obtém o tamanho máximo do deslocamento de derivação de chave. |
SecurityVersion |
Obtém a versão de segurança. |
Métodos
CanReadKeyIdentifier(XmlReader) |
Determina se este serializador pode ler o elemento |
CanReadKeyIdentifierClause(XmlReader) |
Determina se este serializador pode ler uma cláusula em um elemento |
CanReadKeyIdentifierClauseCore(XmlReader) |
Obtém um valor que indica se o núcleo da cláusula do identificador de chave pode ser lido usando o leitor especificado. |
CanReadKeyIdentifierCore(XmlReader) |
Obtém um valor que indica se o núcleo do identificador de chave pode ser lido usando o leitor especificado. |
CanReadToken(XmlReader) |
Determina se este serializador pode ler o token de segurança apontado pelo leitor de XML especificado. (Herdado de SecurityTokenSerializer) |
CanReadTokenCore(XmlReader) |
Obtém um valor que indica se o núcleo do token pode ser lido usando o leitor especificado. |
CanWriteKeyIdentifier(SecurityKeyIdentifier) |
Determina se este serializador pode gravar o identificador de chave especificado. (Herdado de SecurityTokenSerializer) |
CanWriteKeyIdentifierClause(SecurityKeyIdentifierClause) |
Determina se este serializador pode gravar a cláusula do identificador de chave especificada. (Herdado de SecurityTokenSerializer) |
CanWriteKeyIdentifierClauseCore(SecurityKeyIdentifierClause) |
Obtém um valor que indica se o núcleo da cláusula do identificador de chave com a cláusula do identificador de chave especificada pode ser gravado. |
CanWriteKeyIdentifierCore(SecurityKeyIdentifier) |
Obtém um valor que indica se o núcleo do identificador de chave com a cláusula do identificador de chave especificada pode ser gravado. |
CanWriteToken(SecurityToken) |
Determina se este serializador pode gravar o token de segurança especificado em XML. (Herdado de SecurityTokenSerializer) |
CanWriteTokenCore(SecurityToken) |
Obtém um valor que indica se o núcleo de token com um token de segurança especificado pode ser gravado. |
CreateKeyIdentifierClauseFromTokenXml(XmlElement, SecurityTokenReferenceStyle) |
Cria uma cláusula do identificador de chave com base em um token expresso como XML. |
Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
GetHashCode() |
Serve como a função de hash padrão. (Herdado de Object) |
GetTokenTypeUri(Type) |
Obtém o URI do token de segurança do tipo especificado. |
GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
MemberwiseClone() |
Cria uma cópia superficial do Object atual. (Herdado de Object) |
ReadKeyIdentifier(XmlReader) |
Lê o identificador de chave usando o leitor de XML especificado. (Herdado de SecurityTokenSerializer) |
ReadKeyIdentifierClause(XmlReader) |
Lê a cláusula do identificador de chave usando o leitor de XML especificado. (Herdado de SecurityTokenSerializer) |
ReadKeyIdentifierClauseCore(XmlReader) |
Lê o núcleo da cláusula do identificador de chave usando o XmlReader especificado. |
ReadKeyIdentifierCore(XmlReader) |
Lê o núcleo do identificador de chave usando o XmlReader especificado. |
ReadToken(XmlReader, SecurityTokenResolver) |
Lê o token de segurança apontado pelo leitor de XML especificado. (Herdado de SecurityTokenSerializer) |
ReadTokenCore(XmlReader, SecurityTokenResolver) |
Lê o núcleo do token usando o XmlReader especificado. |
ToString() |
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |
TryCreateKeyIdentifierClauseFromTokenXml(XmlElement, SecurityTokenReferenceStyle, SecurityKeyIdentifierClause) |
Tenta criar uma cláusula do identificador de chave com base em um token expresso como XML. |
WriteKeyIdentifier(XmlWriter, SecurityKeyIdentifier) |
Grava o identificador de chave especificado usando o gravador de XML especificado. (Herdado de SecurityTokenSerializer) |
WriteKeyIdentifierClause(XmlWriter, SecurityKeyIdentifierClause) |
Grava a cláusula de identificador de chave especificada usando o gravador de XML especificado. (Herdado de SecurityTokenSerializer) |
WriteKeyIdentifierClauseCore(XmlWriter, SecurityKeyIdentifierClause) |
Grava o núcleo da cláusula do identificador de chave com uma cláusula do identificador de chave especificada usando o XmlWriter especificado. |
WriteKeyIdentifierCore(XmlWriter, SecurityKeyIdentifier) |
Grava o núcleo do identificador de chave com uma cláusula do identificador de chave especificada usando o XmlWriter especificado. |
WriteToken(XmlWriter, SecurityToken) |
Grava o token de segurança especificado usando o gravador de XML especificado. (Herdado de SecurityTokenSerializer) |
WriteTokenCore(XmlWriter, SecurityToken) |
Grava o núcleo do token com um token de segurança especificado usando o XmlWriter especificado. |