WSSecurityTokenSerializer Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
La classe utilisée pour sérialiser et désérialiser les jetons de sécurité, les identificateurs de clés de sécurité et les clauses d'identificateur de clé de sécurité définis dans les spécifications de sécurité de WS-Security, WS-Trust et 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
- Héritage
Exemples
Le code suivant illustre une substitution personnalisée de cette 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
Constructeurs
Propriétés
DefaultInstance |
Obtient une instance par défaut de cette classe. |
EmitBspRequiredAttributes |
Obtient une valeur qui indique si les attributs BSP obligatoires doivent être émis. |
MaximumKeyDerivationLabelLength |
Obtient la longueur d'étiquette de dérivation de clé maximale. |
MaximumKeyDerivationNonceLength |
Obtient la longueur de la valeur à usage unique de dérivation de clé maximale. |
MaximumKeyDerivationOffset |
Obtient l'offset de dérivation de clé maximal. |
SecurityVersion |
Obtient la version de sécurité. |
Méthodes
CanReadKeyIdentifier(XmlReader) |
Détermine si ce sérialiseur peut lire l'élément |
CanReadKeyIdentifierClause(XmlReader) |
Détermine si le sérialiseur peut lire une clause dans un élément |
CanReadKeyIdentifierClauseCore(XmlReader) |
Obtient une valeur qui indique si le cœur de clause d'identificateur de clé peut être lu à l'aide du lecteur spécifié. |
CanReadKeyIdentifierCore(XmlReader) |
Obtient une valeur qui indique si le cœur d'identificateur de clé peut être lu à l'aide du lecteur spécifié. |
CanReadToken(XmlReader) |
Détermine si ce sérialiseur peut lire le jeton de sécurité pointé par le lecteur XML spécifié. (Hérité de SecurityTokenSerializer) |
CanReadTokenCore(XmlReader) |
Obtient une valeur qui indique si le cœur de jeton peut être lu à l'aide du lecteur spécifié. |
CanWriteKeyIdentifier(SecurityKeyIdentifier) |
Détermine si ce sérialiseur peut écrire l'identificateur clé spécifié. (Hérité de SecurityTokenSerializer) |
CanWriteKeyIdentifierClause(SecurityKeyIdentifierClause) |
Détermine si ce sérialiseur peut écrire la clause d'identificateur de clé spécifiée. (Hérité de SecurityTokenSerializer) |
CanWriteKeyIdentifierClauseCore(SecurityKeyIdentifierClause) |
Obtient une valeur qui indique si le cœur de clause d'identificateur de clé à la clause d'identificateur clé spécifiée peut être écrit. |
CanWriteKeyIdentifierCore(SecurityKeyIdentifier) |
Obtient une valeur qui indique si le cœur d'identificateur de clé à la clause d'identificateur de clé spécifiée peut être écrit. |
CanWriteToken(SecurityToken) |
Détermine si ce sérialiseur peut écrire le jeton de sécurité spécifié en format XML. (Hérité de SecurityTokenSerializer) |
CanWriteTokenCore(SecurityToken) |
Obtient une valeur qui indique si le cœur de jeton au jeton de sécurité spécifié peut être écrit. |
CreateKeyIdentifierClauseFromTokenXml(XmlElement, SecurityTokenReferenceStyle) |
Crée une clause d'identificateur de clé à partir d'un jeton exprimé sous forme de XML. |
Equals(Object) |
Détermine si l'objet spécifié est égal à l'objet actuel. (Hérité de Object) |
GetHashCode() |
Fait office de fonction de hachage par défaut. (Hérité de Object) |
GetTokenTypeUri(Type) |
Obtient l'URI du jeton de sécurité du type spécifié. |
GetType() |
Obtient le Type de l'instance actuelle. (Hérité de Object) |
MemberwiseClone() |
Crée une copie superficielle du Object actuel. (Hérité de Object) |
ReadKeyIdentifier(XmlReader) |
Lit l'identificateur de clé à l'aide du lecteur XML spécifié. (Hérité de SecurityTokenSerializer) |
ReadKeyIdentifierClause(XmlReader) |
Lit la clause d'identificateur de clé à l'aide du lecteur XML spécifié. (Hérité de SecurityTokenSerializer) |
ReadKeyIdentifierClauseCore(XmlReader) |
Lit le cœur de clause d'identificateur de clé à l'aide du XmlReader spécifié. |
ReadKeyIdentifierCore(XmlReader) |
Lit le cœur d'identificateur de clé à l'aide du XmlReader spécifié. |
ReadToken(XmlReader, SecurityTokenResolver) |
Lit le jeton de sécurité pointé par le lecteur XML spécifié. (Hérité de SecurityTokenSerializer) |
ReadTokenCore(XmlReader, SecurityTokenResolver) |
Lit le cœur de jeton à l'aide du XmlReader spécifié. |
ToString() |
Retourne une chaîne qui représente l'objet actuel. (Hérité de Object) |
TryCreateKeyIdentifierClauseFromTokenXml(XmlElement, SecurityTokenReferenceStyle, SecurityKeyIdentifierClause) |
Tente de créer une clause d'identificateur de clé à partir d'un jeton exprimé sous forme de XML. |
WriteKeyIdentifier(XmlWriter, SecurityKeyIdentifier) |
Écrit l'identificateur de clé spécifié à l'aide du writer XML spécifié. (Hérité de SecurityTokenSerializer) |
WriteKeyIdentifierClause(XmlWriter, SecurityKeyIdentifierClause) |
Écrit la clause d'identificateur de clé spécifiée à l'aide du writer XML spécifié. (Hérité de SecurityTokenSerializer) |
WriteKeyIdentifierClauseCore(XmlWriter, SecurityKeyIdentifierClause) |
Écrit le cœur de clause d'identificateur de clé à la clause d'identificateur de clé spécifiée à l'aide du XmlWriter spécifié. |
WriteKeyIdentifierCore(XmlWriter, SecurityKeyIdentifier) |
Écrit le cœur d'identificateur de clé à la clause d'identificateur de clé spécifiée à l'aide du XmlWriter spécifié. |
WriteToken(XmlWriter, SecurityToken) |
Écrit le jeton de sécurité spécifié à l'aide du writer XML spécifié. (Hérité de SecurityTokenSerializer) |
WriteTokenCore(XmlWriter, SecurityToken) |
Écrit le cœur de jeton au jeton de sécurité spécifié à l'aide du XmlWriter spécifié. |