WSSecurityTokenSerializer Sınıf

Tanım

WS-Security, WS-Trust ve WS-SecureConversation güvenlik belirtimlerinde tanımlanan güvenlik belirteçlerini, güvenlik anahtarı tanımlayıcılarını ve güvenlik anahtarı tanımlayıcı yan tümcelerini seri hale getirme ve seri durumdan çıkarma için kullanılan sınıf.

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
Devralma
WSSecurityTokenSerializer

Örnekler

Aşağıdaki kod, bu sınıfın özel bir geçersiz kılmasını gösterir.

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

Oluşturucular

WSSecurityTokenSerializer()

WSSecurityTokenSerializer sınıfının yeni bir örneğini başlatır.

WSSecurityTokenSerializer(Boolean)

WSSecurityTokenSerializer sınıfının yeni bir örneğini başlatır.

WSSecurityTokenSerializer(SecurityVersion)

WSSecurityTokenSerializer sınıfının yeni bir örneğini başlatır.

WSSecurityTokenSerializer(SecurityVersion, Boolean)

WSSecurityTokenSerializer sınıfının yeni bir örneğini başlatır.

WSSecurityTokenSerializer(SecurityVersion, Boolean, SamlSerializer)

WSSecurityTokenSerializer sınıfının yeni bir örneğini başlatır.

WSSecurityTokenSerializer(SecurityVersion, Boolean, SamlSerializer, SecurityStateEncoder, IEnumerable<Type>)

WSSecurityTokenSerializer sınıfının yeni bir örneğini başlatır.

WSSecurityTokenSerializer(SecurityVersion, Boolean, SamlSerializer, SecurityStateEncoder, IEnumerable<Type>, Int32, Int32, Int32)

WSSecurityTokenSerializer sınıfının yeni bir örneğini başlatır.

WSSecurityTokenSerializer(SecurityVersion, TrustVersion, SecureConversationVersion, Boolean, SamlSerializer, SecurityStateEncoder, IEnumerable<Type>)

WSSecurityTokenSerializer sınıfının yeni bir örneğini başlatır.

WSSecurityTokenSerializer(SecurityVersion, TrustVersion, SecureConversationVersion, Boolean, SamlSerializer, SecurityStateEncoder, IEnumerable<Type>, Int32, Int32, Int32)

WSSecurityTokenSerializer sınıfının yeni bir örneğini başlatır.

Özellikler

DefaultInstance

Bu sınıfın varsayılan örneğini alır.

EmitBspRequiredAttributes

BSP gerekli özniteliklerinin yayılıp yayılmayacağını belirten bir değer alır.

MaximumKeyDerivationLabelLength

Maksimum anahtar türetme etiketi uzunluğunu alır.

MaximumKeyDerivationNonceLength

Maksimum anahtar türetme nonce uzunluğunu alır.

MaximumKeyDerivationOffset

En büyük anahtar türetme uzaklığını alır.

SecurityVersion

Güvenlik sürümünü alır.

Yöntemler

CanReadKeyIdentifier(XmlReader)

Bu seri hale getiricinin <KeyIdentifier> belirtilen XML okuyucusu tarafından başvuruda bulunılan öğeyi okuyup okuyamayacağını belirler.

(Devralındığı yer: SecurityTokenSerializer)
CanReadKeyIdentifierClause(XmlReader)

Bu seri hale getiricinin belirtilen XML okuyucusu tarafından başvuruda bulunulur bir öğedeki yan <KeyIdentifier> tümceyi okuyup okuyamayacağını belirler.

(Devralındığı yer: SecurityTokenSerializer)
CanReadKeyIdentifierClauseCore(XmlReader)

Anahtar tanımlayıcı yan tümcesi çekirdeğinin belirtilen okuyucu kullanılarak okunup okunamayacağını belirten bir değer alır.

CanReadKeyIdentifierCore(XmlReader)

Anahtar tanımlayıcı çekirdeğinin belirtilen okuyucu kullanılarak okunup okunamayacağını belirten bir değer alır.

CanReadToken(XmlReader)

Bu seri hale getiricinin belirtilen XML okuyucu tarafından işaret edilen güvenlik belirtecini okuyup okuyamayacağını belirler.

(Devralındığı yer: SecurityTokenSerializer)
CanReadTokenCore(XmlReader)

Belirteç çekirdeğinin belirtilen okuyucu kullanılarak okunup okunamayacağını belirten bir değer alır.

CanWriteKeyIdentifier(SecurityKeyIdentifier)

Bu seri hale getiricinin belirtilen anahtar tanımlayıcısını yazıp yazamayacağını belirler.

(Devralındığı yer: SecurityTokenSerializer)
CanWriteKeyIdentifierClause(SecurityKeyIdentifierClause)

Bu seri hale getiricinin belirtilen anahtar tanımlayıcı yan tümcesini yazıp yazamayacağını belirler.

(Devralındığı yer: SecurityTokenSerializer)
CanWriteKeyIdentifierClauseCore(SecurityKeyIdentifierClause)

Belirtilen anahtar tanımlayıcı yan tümcesine sahip anahtar tanımlayıcı yan tümcesinin yazılıp yazılamayacağını belirten bir değer alır.

CanWriteKeyIdentifierCore(SecurityKeyIdentifier)

Belirtilen anahtar tanımlayıcı yan tümcesine sahip anahtar tanımlayıcı çekirdeğinin yazıp yazılamayacağını belirten bir değer alır.

CanWriteToken(SecurityToken)

Bu seri hale getiricinin belirtilen güvenlik belirtecini XML'ye yazıp yazamayacağını belirler.

(Devralındığı yer: SecurityTokenSerializer)
CanWriteTokenCore(SecurityToken)

Belirtilen güvenlik belirteciyle belirteç çekirdeğinin yazılıp yazılamayacağını belirten bir değer alır.

CreateKeyIdentifierClauseFromTokenXml(XmlElement, SecurityTokenReferenceStyle)

XML olarak ifade edilen bir belirteçten anahtar tanımlayıcı yan tümcesi oluşturur.

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetTokenTypeUri(Type)

Belirtilen türdeki güvenlik belirtecinin URI'sini alır.

GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
ReadKeyIdentifier(XmlReader)

Belirtilen XML okuyucuyu kullanarak anahtar tanımlayıcısını okur.

(Devralındığı yer: SecurityTokenSerializer)
ReadKeyIdentifierClause(XmlReader)

Belirtilen XML okuyucuyu kullanarak anahtar tanımlayıcı yan tümcesini okur.

(Devralındığı yer: SecurityTokenSerializer)
ReadKeyIdentifierClauseCore(XmlReader)

Belirtilen XmlReaderöğesini kullanarak anahtar tanımlayıcı yan tümcesi çekirdeğini okur.

ReadKeyIdentifierCore(XmlReader)

Belirtilen XmlReaderöğesini kullanarak anahtar tanımlayıcı çekirdeğini okur.

ReadToken(XmlReader, SecurityTokenResolver)

Belirtilen XML okuyucusu tarafından işaret edilen güvenlik belirtecini okur.

(Devralındığı yer: SecurityTokenSerializer)
ReadTokenCore(XmlReader, SecurityTokenResolver)

Belirtilen XmlReaderöğesini kullanarak belirteç çekirdeğini okur.

ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)
TryCreateKeyIdentifierClauseFromTokenXml(XmlElement, SecurityTokenReferenceStyle, SecurityKeyIdentifierClause)

XML olarak ifade edilen bir belirteçten anahtar tanımlayıcı yan tümcesi oluşturmaya çalışır.

WriteKeyIdentifier(XmlWriter, SecurityKeyIdentifier)

Belirtilen XML yazıcısını kullanarak belirtilen anahtar tanımlayıcısını yazar.

(Devralındığı yer: SecurityTokenSerializer)
WriteKeyIdentifierClause(XmlWriter, SecurityKeyIdentifierClause)

Belirtilen XML yazıcısını kullanarak belirtilen anahtar tanımlayıcı yan tümcesini yazar.

(Devralındığı yer: SecurityTokenSerializer)
WriteKeyIdentifierClauseCore(XmlWriter, SecurityKeyIdentifierClause)

Belirtilen kullanarak belirtilen anahtar tanımlayıcı yan tümcesiyle anahtar tanımlayıcı yan tümcesi çekirdeğini XmlWriteryazar.

WriteKeyIdentifierCore(XmlWriter, SecurityKeyIdentifier)

Belirtilen kullanarak belirtilen anahtar tanımlayıcı yan tümcesiyle anahtar tanımlayıcı çekirdeğini XmlWriteryazar.

WriteToken(XmlWriter, SecurityToken)

Belirtilen XML yazıcısını kullanarak belirtilen güvenlik belirtecini yazar.

(Devralındığı yer: SecurityTokenSerializer)
WriteTokenCore(XmlWriter, SecurityToken)

Belirtilen güvenlik belirteciyle belirteç çekirdeğini belirtilen XmlWriterkullanarak yazar.

Şunlara uygulanır