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.
Classe utilisée pour sérialiser et désérialiser les jetons de sécurité, les identificateurs de clé de sécurité et les clauses d’identificateur de clé de sécurité définies dans WS-Security, WS-Trust et WS-SecureConversation spécifications de sécurité.
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 un remplacement personnalisé 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
| Nom | Description |
|---|---|
| DefaultInstance |
Obtient une instance par défaut de cette classe. |
| EmitBspRequiredAttributes |
Obtient une valeur qui indique s’il faut émettre des attributs BSP requis. |
| MaximumKeyDerivationLabelLength |
Obtient la longueur maximale de l’étiquette de dérivation de clé. |
| MaximumKeyDerivationNonceLength |
Obtient la longueur de dérivation de clé maximale. |
| MaximumKeyDerivationOffset |
Obtient le décalage de dérivation de clé maximale. |
| SecurityVersion |
Obtient la version de sécurité. |
Méthodes
| Nom | Description |
|---|---|
| CanReadKeyIdentifier(XmlReader) |
Détermine si ce sérialiseur peut lire l’élément |
| CanReadKeyIdentifierClause(XmlReader) |
Détermine si ce sérialiseur peut lire une clause dans un |
| 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 de 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é avec une clause d’identificateur de clé spécifiée peut être écrit. |
| CanWriteKeyIdentifierCore(SecurityKeyIdentifier) |
Obtient une valeur qui indique si le cœur d’identificateur de clé avec une 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é dans XML. (Hérité de SecurityTokenSerializer) |
| CanWriteTokenCore(SecurityToken) |
Obtient une valeur qui indique si le cœur de jeton avec un 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é en xml. |
| Equals(Object) |
Détermine si l’objet spécifié est égal à l’objet actuel. (Hérité de Object) |
| GetHashCode() |
Sert 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 la Type de l’instance actuelle. (Hérité de Object) |
| MemberwiseClone() |
Crée une copie superficielle du Objectactuel. (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 de l’élément spécifié XmlReader. |
| ReadKeyIdentifierCore(XmlReader) |
Lit le cœur d’identificateur de clé à l’aide de l’élément spécifié XmlReader. |
| 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 |
| 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é en xml. |
| WriteKeyIdentifier(XmlWriter, SecurityKeyIdentifier) |
Écrit l’identificateur de clé spécifié à l’aide de l’enregistreur XML spécifié. (Hérité de SecurityTokenSerializer) |
| WriteKeyIdentifierClause(XmlWriter, SecurityKeyIdentifierClause) |
Écrit la clause d’identificateur de clé spécifiée à l’aide de l’enregistreur XML spécifié. (Hérité de SecurityTokenSerializer) |
| WriteKeyIdentifierClauseCore(XmlWriter, SecurityKeyIdentifierClause) |
Écrit le cœur de clause d’identificateur de clé avec une clause d’identificateur de clé spécifiée à l’aide de l’identificateur de clé spécifié XmlWriter. |
| WriteKeyIdentifierCore(XmlWriter, SecurityKeyIdentifier) |
Écrit le cœur d’identificateur de clé avec une clause d’identificateur de clé spécifiée à l’aide de l’identificateur de clé spécifié XmlWriter. |
| WriteToken(XmlWriter, SecurityToken) |
Écrit le jeton de sécurité spécifié à l’aide de l’enregistreur XML spécifié. (Hérité de SecurityTokenSerializer) |
| WriteTokenCore(XmlWriter, SecurityToken) |
Écrit le cœur de jeton avec un jeton de sécurité spécifié à l’aide du jeton spécifié XmlWriter. |