WSSecurityTokenSerializer Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Classe usata per serializzare e deserializzare token di sicurezza, identificatori di chiave di sicurezza e clausole identificatori di chiave di sicurezza definiti nelle specifiche di sicurezza 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
- Ereditarietà
Esempio
Il codice seguente illustra un override personalizzato di questa 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
Costruttori
Proprietà
| Nome | Descrizione |
|---|---|
| DefaultInstance |
Ottiene un'istanza predefinita di questa classe. |
| EmitBspRequiredAttributes |
Ottiene un valore che indica se generare attributi obbligatori BSP. |
| MaximumKeyDerivationLabelLength |
Ottiene la lunghezza massima dell'etichetta di derivazione della chiave. |
| MaximumKeyDerivationNonceLength |
Ottiene la lunghezza massima della derivazione della chiave nonce. |
| MaximumKeyDerivationOffset |
Ottiene l'offset massimo di derivazione della chiave. |
| SecurityVersion |
Ottiene la versione di sicurezza. |
Metodi
| Nome | Descrizione |
|---|---|
| CanReadKeyIdentifier(XmlReader) |
Determina se questo serializzatore può leggere l'elemento |
| CanReadKeyIdentifierClause(XmlReader) |
Determina se questo serializzatore può leggere una clausola in un |
| CanReadKeyIdentifierClauseCore(XmlReader) |
Ottiene un valore che indica se il nucleo della clausola dell'identificatore di chiave può essere letto utilizzando il lettore specificato. |
| CanReadKeyIdentifierCore(XmlReader) |
Ottiene un valore che indica se il core dell'identificatore di chiave può essere letto utilizzando il lettore specificato. |
| CanReadToken(XmlReader) |
Determina se questo serializzatore può leggere il token di sicurezza a cui punta il lettore XML specificato. (Ereditato da SecurityTokenSerializer) |
| CanReadTokenCore(XmlReader) |
Ottiene un valore che indica se il core del token può essere letto usando il lettore specificato. |
| CanWriteKeyIdentifier(SecurityKeyIdentifier) |
Determina se questo serializzatore può scrivere l'identificatore di chiave specificato. (Ereditato da SecurityTokenSerializer) |
| CanWriteKeyIdentifierClause(SecurityKeyIdentifierClause) |
Determina se questo serializzatore può scrivere la clausola dell'identificatore di chiave specificata. (Ereditato da SecurityTokenSerializer) |
| CanWriteKeyIdentifierClauseCore(SecurityKeyIdentifierClause) |
Ottiene un valore che indica se è possibile scrivere il core della clausola dell'identificatore di chiave con una clausola identificatore di chiave specificata. |
| CanWriteKeyIdentifierCore(SecurityKeyIdentifier) |
Ottiene un valore che indica se è possibile scrivere il core dell'identificatore di chiave con una clausola identificatore di chiave specificata. |
| CanWriteToken(SecurityToken) |
Determina se questo serializzatore può scrivere il token di sicurezza specificato in XML. (Ereditato da SecurityTokenSerializer) |
| CanWriteTokenCore(SecurityToken) |
Ottiene un valore che indica se è possibile scrivere il core del token con un token di sicurezza specificato. |
| CreateKeyIdentifierClauseFromTokenXml(XmlElement, SecurityTokenReferenceStyle) |
Crea una clausola dell'identificatore di chiave da un token espresso come XML. |
| Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
| GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
| GetTokenTypeUri(Type) |
Ottiene l'URI del token di sicurezza del tipo specificato. |
| GetType() |
Ottiene il Type dell'istanza corrente. (Ereditato da Object) |
| MemberwiseClone() |
Crea una copia superficiale del Objectcorrente. (Ereditato da Object) |
| ReadKeyIdentifier(XmlReader) |
Legge l'identificatore di chiave usando il lettore XML specificato. (Ereditato da SecurityTokenSerializer) |
| ReadKeyIdentifierClause(XmlReader) |
Legge la clausola dell'identificatore di chiave utilizzando il lettore XML specificato. (Ereditato da SecurityTokenSerializer) |
| ReadKeyIdentifierClauseCore(XmlReader) |
Legge il nucleo della clausola dell'identificatore di chiave usando l'oggetto specificato XmlReader. |
| ReadKeyIdentifierCore(XmlReader) |
Legge il core dell'identificatore di chiave usando l'oggetto specificato XmlReader. |
| ReadToken(XmlReader, SecurityTokenResolver) |
Legge il token di sicurezza a cui punta il lettore XML specificato. (Ereditato da SecurityTokenSerializer) |
| ReadTokenCore(XmlReader, SecurityTokenResolver) |
Legge il core del token usando l'oggetto specificato XmlReader. |
| ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
| TryCreateKeyIdentifierClauseFromTokenXml(XmlElement, SecurityTokenReferenceStyle, SecurityKeyIdentifierClause) |
Tenta di creare una clausola dell'identificatore di chiave da un token espresso come XML. |
| WriteKeyIdentifier(XmlWriter, SecurityKeyIdentifier) |
Scrive l'identificatore di chiave specificato utilizzando il writer XML specificato. (Ereditato da SecurityTokenSerializer) |
| WriteKeyIdentifierClause(XmlWriter, SecurityKeyIdentifierClause) |
Scrive la clausola dell'identificatore di chiave specificata utilizzando il writer XML specificato. (Ereditato da SecurityTokenSerializer) |
| WriteKeyIdentifierClauseCore(XmlWriter, SecurityKeyIdentifierClause) |
Scrive il core della clausola dell'identificatore di chiave con una clausola identificatore di chiave specificata usando l'oggetto specificato XmlWriter. |
| WriteKeyIdentifierCore(XmlWriter, SecurityKeyIdentifier) |
Scrive il core dell'identificatore di chiave con una clausola dell'identificatore di chiave specificata usando l'oggetto specificato XmlWriter. |
| WriteToken(XmlWriter, SecurityToken) |
Scrive il token di sicurezza specificato usando il writer XML specificato. (Ereditato da SecurityTokenSerializer) |
| WriteTokenCore(XmlWriter, SecurityToken) |
Scrive il core del token con un token di sicurezza specificato usando l'oggetto specificato XmlWriter. |