WSSecurityTokenSerializer Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
A classe utilizada para serializar e desserializar 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 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 seguinte demonstra uma sobreposição personalizada desta 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
| Name | Description |
|---|---|
| DefaultInstance |
Obtém uma instância padrão desta classe. |
| EmitBspRequiredAttributes |
Recebe um valor que indica se deve emitir os atributos exigidos pelo BSP. |
| MaximumKeyDerivationLabelLength |
Obtém o comprimento máximo da etiqueta de derivação da chave. |
| MaximumKeyDerivationNonceLength |
Obtém o comprimento máximo de nonce de derivação da chave. |
| MaximumKeyDerivationOffset |
Obtém o deslocamento máximo de derivação da chave. |
| SecurityVersion |
Recebe a versão de segurança. |
Métodos
| Name | Description |
|---|---|
| CanReadKeyIdentifier(XmlReader) |
Determina se este serializador consegue ler o |
| CanReadKeyIdentifierClause(XmlReader) |
Determina se este serializador pode ler uma cláusula num |
| CanReadKeyIdentifierClauseCore(XmlReader) |
Recebe um valor que indica se o núcleo da cláusula identificadora de chave pode ser lido usando o leitor especificado. |
| CanReadKeyIdentifierCore(XmlReader) |
Recebe 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 consegue ler o token de segurança apontado pelo leitor XML especificado. (Herdado de SecurityTokenSerializer) |
| CanReadTokenCore(XmlReader) |
Recebe um valor que indica se o núcleo do token pode ser lido usando o leitor especificado. |
| CanWriteKeyIdentifier(SecurityKeyIdentifier) |
Determina se este serializador pode escrever o identificador de chave especificado. (Herdado de SecurityTokenSerializer) |
| CanWriteKeyIdentifierClause(SecurityKeyIdentifierClause) |
Determina se este serializador pode escrever a cláusula identificadora de chave especificada. (Herdado de SecurityTokenSerializer) |
| CanWriteKeyIdentifierClauseCore(SecurityKeyIdentifierClause) |
Obtém um valor que indica se o núcleo da cláusula identificadora de chave com uma cláusula especificada pode ser escrito. |
| CanWriteKeyIdentifierCore(SecurityKeyIdentifier) |
Recebe um valor que indica se o núcleo do identificador de chave com uma cláusula especificada pode ser escrito. |
| CanWriteToken(SecurityToken) |
Determina se este serializador pode escrever o token de segurança especificado para XML. (Herdado de SecurityTokenSerializer) |
| CanWriteTokenCore(SecurityToken) |
Recebe um valor que indica se o núcleo do token com um token de segurança especificado pode ser escrito. |
| CreateKeyIdentifierClauseFromTokenXml(XmlElement, SecurityTokenReferenceStyle) |
Cria uma cláusula identificadora de chave a partir de um token expresso como XML. |
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| GetHashCode() |
Serve como função de hash predefinida. (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 atual Object. (Herdado de Object) |
| ReadKeyIdentifier(XmlReader) |
Lê o identificador de chave usando um leitor XML especificado. (Herdado de SecurityTokenSerializer) |
| ReadKeyIdentifierClause(XmlReader) |
Lê a cláusula de identificador de chave usando um leitor XML especificado. (Herdado de SecurityTokenSerializer) |
| ReadKeyIdentifierClauseCore(XmlReader) |
Lê o núcleo da cláusula de identificador de chave usando o especificado XmlReader. |
| ReadKeyIdentifierCore(XmlReader) |
Lê o núcleo do identificador de chave usando o especificado XmlReader. |
| ReadToken(XmlReader, SecurityTokenResolver) |
Lê o token de segurança apontado pelo leitor XML especificado. (Herdado de SecurityTokenSerializer) |
| ReadTokenCore(XmlReader, SecurityTokenResolver) |
Lê o núcleo do token usando o especificado XmlReader. |
| ToString() |
Devolve uma cadeia que representa o objeto atual. (Herdado de Object) |
| TryCreateKeyIdentifierClauseFromTokenXml(XmlElement, SecurityTokenReferenceStyle, SecurityKeyIdentifierClause) |
Tentativas de criar uma cláusula identificadora de chave a partir de um token expresso como XML. |
| WriteKeyIdentifier(XmlWriter, SecurityKeyIdentifier) |
Escreve o identificador de chave especificado usando o escritor XML especificado. (Herdado de SecurityTokenSerializer) |
| WriteKeyIdentifierClause(XmlWriter, SecurityKeyIdentifierClause) |
Escreve a cláusula identificadora de chave especificada usando o escritor XML especificado. (Herdado de SecurityTokenSerializer) |
| WriteKeyIdentifierClauseCore(XmlWriter, SecurityKeyIdentifierClause) |
Escreve o núcleo da cláusula de identificador de chave com uma cláusula de identificador de chave especificada usando o .XmlWriter |
| WriteKeyIdentifierCore(XmlWriter, SecurityKeyIdentifier) |
Escreve o núcleo do identificador de chave com uma cláusula de identificador de chave especificada usando o .XmlWriter |
| WriteToken(XmlWriter, SecurityToken) |
Escreve o token de segurança especificado usando o escritor XML especificado. (Herdado de SecurityTokenSerializer) |
| WriteTokenCore(XmlWriter, SecurityToken) |
Escreve o núcleo do token com um token de segurança especificado usando o ficheiro especificado XmlWriter. |