WSSecurityTokenSerializer Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Třída použitá pro serializaci a deserializaci tokenů zabezpečení, identifikátory klíčů zabezpečení a identifikátory klíče zabezpečení klauzule definované ve specifikacích zabezpečení WS-Security, WS-Trust a 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
- Dědičnost
Příklady
Následující kód ukazuje vlastní přepsání této třídy.
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
Konstruktory
Vlastnosti
DefaultInstance |
Získá výchozí instanci této třídy. |
EmitBspRequiredAttributes |
Získá hodnotu, která označuje, zda se mají generovat požadované atributy BSP. |
MaximumKeyDerivationLabelLength |
Získá maximální délku popisku odvození klíče. |
MaximumKeyDerivationNonceLength |
Získá maximální délku odvozování klíče nonce. |
MaximumKeyDerivationOffset |
Získá posun maximálního odvození klíče. |
SecurityVersion |
Získá verzi zabezpečení. |
Metody
CanReadKeyIdentifier(XmlReader) |
Určuje, zda tento serializátor může číst |
CanReadKeyIdentifierClause(XmlReader) |
Určuje, zda tento serializátor může číst klauzuli v elementu |
CanReadKeyIdentifierClauseCore(XmlReader) |
Získá hodnotu, která označuje, zda klíč identifikátor klauzule core lze číst pomocí zadané čtečky. |
CanReadKeyIdentifierCore(XmlReader) |
Získá hodnotu, která označuje, zda klíč identifikátor jádra lze číst pomocí zadaného čtenáře. |
CanReadToken(XmlReader) |
Určuje, zda tento serializátor může číst token zabezpečení, na který odkazuje zadaná čtečka XML. (Zděděno od SecurityTokenSerializer) |
CanReadTokenCore(XmlReader) |
Získá hodnotu, která označuje, zda jádro tokenu lze číst pomocí zadaného čtenáře. |
CanWriteKeyIdentifier(SecurityKeyIdentifier) |
Určuje, zda tento serializátor může zapisovat identifikátor zadaného klíče. (Zděděno od SecurityTokenSerializer) |
CanWriteKeyIdentifierClause(SecurityKeyIdentifierClause) |
Určuje, zda tento serializátor může zapisovat zadaný identifikátor klíče klauzule. (Zděděno od SecurityTokenSerializer) |
CanWriteKeyIdentifierClauseCore(SecurityKeyIdentifierClause) |
Získá hodnotu, která označuje, zda klíč identifikátor klauzule jádro se zadaný klíč identifikátor klauzule lze zapisovat. |
CanWriteKeyIdentifierCore(SecurityKeyIdentifier) |
Získá hodnotu, která označuje, zda je možné zapsat jádro identifikátoru klíče se zadanou klauzulí identifikátoru klíče. |
CanWriteToken(SecurityToken) |
Určuje, zda tento serializátor může zapisovat zadaný token zabezpečení do XML. (Zděděno od SecurityTokenSerializer) |
CanWriteTokenCore(SecurityToken) |
Získá hodnotu, která označuje, zda je možné zapsat jádro tokenu se zadaným tokenem zabezpečení. |
CreateKeyIdentifierClauseFromTokenXml(XmlElement, SecurityTokenReferenceStyle) |
Vytvoří klauzuli identifikátoru klíče z tokenu vyjádřeného jako XML. |
Equals(Object) |
Určí, zda se zadaný objekt rovná aktuálnímu objektu. (Zděděno od Object) |
GetHashCode() |
Slouží jako výchozí hashovací funkce. (Zděděno od Object) |
GetTokenTypeUri(Type) |
Získá identifikátor URI tokenu zabezpečení zadaného typu. |
GetType() |
Type Získá z aktuální instance. (Zděděno od Object) |
MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Objectsouboru . (Zděděno od Object) |
ReadKeyIdentifier(XmlReader) |
Přečte identifikátor klíče pomocí zadané čtečky XML. (Zděděno od SecurityTokenSerializer) |
ReadKeyIdentifierClause(XmlReader) |
Přečte klauzuli identifikátoru klíče pomocí zadané čtečky XML. (Zděděno od SecurityTokenSerializer) |
ReadKeyIdentifierClauseCore(XmlReader) |
Načte jádro klauzule identifikátoru klíče pomocí zadaného XmlReaderidentifikátoru . |
ReadKeyIdentifierCore(XmlReader) |
Načte jádro identifikátoru klíče pomocí zadaného XmlReaderidentifikátoru . |
ReadToken(XmlReader, SecurityTokenResolver) |
Načte token zabezpečení, na který odkazuje zadaný čtenář XML. (Zděděno od SecurityTokenSerializer) |
ReadTokenCore(XmlReader, SecurityTokenResolver) |
Načte jádro tokenu pomocí zadaného XmlReader. |
ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |
TryCreateKeyIdentifierClauseFromTokenXml(XmlElement, SecurityTokenReferenceStyle, SecurityKeyIdentifierClause) |
Pokusí se vytvořit klauzuli identifikátoru klíče z tokenu vyjádřeného jako XML. |
WriteKeyIdentifier(XmlWriter, SecurityKeyIdentifier) |
Zapíše zadaný identifikátor klíče pomocí zadaného zapisovače XML. (Zděděno od SecurityTokenSerializer) |
WriteKeyIdentifierClause(XmlWriter, SecurityKeyIdentifierClause) |
Zapíše zadanou klauzuli identifikátoru klíče pomocí zadaného zapisovače XML. (Zděděno od SecurityTokenSerializer) |
WriteKeyIdentifierClauseCore(XmlWriter, SecurityKeyIdentifierClause) |
Zapíše jádro klauzule identifikátoru klíče se zadanou klauzulí identifikátoru klíče pomocí zadané XmlWriterklauzule . |
WriteKeyIdentifierCore(XmlWriter, SecurityKeyIdentifier) |
Zapíše jádro identifikátoru klíče se zadanou klauzulí identifikátoru klíče pomocí zadané XmlWriterklauzule . |
WriteToken(XmlWriter, SecurityToken) |
Zapíše zadaný token zabezpečení pomocí zadaného zapisovače XML. (Zděděno od SecurityTokenSerializer) |
WriteTokenCore(XmlWriter, SecurityToken) |
Zapíše jádro tokenu se zadaným tokenem zabezpečení pomocí zadaného XmlWritertokenu . |