WSSecurityTokenSerializer Kelas

Definisi

Kelas yang digunakan untuk menserialisasikan dan mendeserialisasi token keamanan, pengidentifikasi kunci keamanan, dan klausa pengidentifikasi kunci keamanan yang ditentukan dalam spesifikasi keamanan WS-Security, WS-Trust, dan 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
Warisan
WSSecurityTokenSerializer

Contoh

Kode berikut menunjukkan penimpaan kustom kelas ini.

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

Konstruktor

WSSecurityTokenSerializer()

Menginisialisasi instans baru kelas WSSecurityTokenSerializer.

WSSecurityTokenSerializer(Boolean)

Menginisialisasi instans baru kelas WSSecurityTokenSerializer.

WSSecurityTokenSerializer(SecurityVersion)

Menginisialisasi instans baru kelas WSSecurityTokenSerializer.

WSSecurityTokenSerializer(SecurityVersion, Boolean)

Menginisialisasi instans baru kelas WSSecurityTokenSerializer.

WSSecurityTokenSerializer(SecurityVersion, Boolean, SamlSerializer)

Menginisialisasi instans baru kelas WSSecurityTokenSerializer.

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

Menginisialisasi instans baru kelas WSSecurityTokenSerializer.

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

Menginisialisasi instans baru kelas WSSecurityTokenSerializer.

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

Menginisialisasi instans baru kelas WSSecurityTokenSerializer.

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

Menginisialisasi instans baru kelas WSSecurityTokenSerializer.

Properti

DefaultInstance

Mendapatkan instans default kelas ini.

EmitBspRequiredAttributes

Mendapatkan nilai yang menunjukkan apakah akan memancarkan atribut yang diperlukan BSP.

MaximumKeyDerivationLabelLength

Mendapatkan panjang label derivasi kunci maksimum.

MaximumKeyDerivationNonceLength

Mendapatkan panjang nonce derivasi kunci maksimum.

MaximumKeyDerivationOffset

Mendapatkan offset derivasi kunci maksimum.

SecurityVersion

Mendapatkan versi keamanan.

Metode

CanReadKeyIdentifier(XmlReader)

Menentukan apakah serializer ini dapat membaca elemen yang <KeyIdentifier> dirujuk oleh pembaca XML yang ditentukan.

(Diperoleh dari SecurityTokenSerializer)
CanReadKeyIdentifierClause(XmlReader)

Menentukan apakah serializer ini dapat membaca klausul dalam elemen yang <KeyIdentifier> dirujuk oleh pembaca XML yang ditentukan.

(Diperoleh dari SecurityTokenSerializer)
CanReadKeyIdentifierClauseCore(XmlReader)

Mendapatkan nilai yang menunjukkan apakah inti klausa pengidentifikasi kunci dapat dibaca menggunakan pembaca yang ditentukan.

CanReadKeyIdentifierCore(XmlReader)

Mendapatkan nilai yang menunjukkan apakah inti pengidentifikasi kunci dapat dibaca menggunakan pembaca yang ditentukan.

CanReadToken(XmlReader)

Menentukan apakah serializer ini dapat membaca token keamanan yang ditunjukkan oleh pembaca XML yang ditentukan.

(Diperoleh dari SecurityTokenSerializer)
CanReadTokenCore(XmlReader)

Mendapatkan nilai yang menunjukkan apakah inti token dapat dibaca menggunakan pembaca yang ditentukan.

CanWriteKeyIdentifier(SecurityKeyIdentifier)

Menentukan apakah serializer ini dapat menulis pengidentifikasi kunci yang ditentukan.

(Diperoleh dari SecurityTokenSerializer)
CanWriteKeyIdentifierClause(SecurityKeyIdentifierClause)

Menentukan apakah serializer ini dapat menulis klausa pengidentifikasi kunci yang ditentukan.

(Diperoleh dari SecurityTokenSerializer)
CanWriteKeyIdentifierClauseCore(SecurityKeyIdentifierClause)

Mendapatkan nilai yang menunjukkan apakah inti klausa pengidentifikasi kunci dengan klausa pengidentifikasi kunci tertentu dapat ditulis.

CanWriteKeyIdentifierCore(SecurityKeyIdentifier)

Mendapatkan nilai yang menunjukkan apakah inti pengidentifikasi kunci dengan klausa pengidentifikasi kunci tertentu dapat ditulis.

CanWriteToken(SecurityToken)

Menentukan apakah serializer ini dapat menulis token keamanan yang ditentukan ke XML.

(Diperoleh dari SecurityTokenSerializer)
CanWriteTokenCore(SecurityToken)

Mendapatkan nilai yang menunjukkan apakah inti token dengan token keamanan tertentu dapat ditulis.

CreateKeyIdentifierClauseFromTokenXml(XmlElement, SecurityTokenReferenceStyle)

Membuat klausa pengidentifikasi kunci dari token yang dinyatakan sebagai XML.

Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetTokenTypeUri(Type)

Mendapatkan URI token keamanan dari jenis yang ditentukan.

GetType()

Mendapatkan instans Type saat ini.

(Diperoleh dari Object)
MemberwiseClone()

Membuat salinan dangkal dari yang saat ini Object.

(Diperoleh dari Object)
ReadKeyIdentifier(XmlReader)

Membaca pengidentifikasi kunci menggunakan pembaca XML yang ditentukan.

(Diperoleh dari SecurityTokenSerializer)
ReadKeyIdentifierClause(XmlReader)

Membaca klausa pengidentifikasi kunci menggunakan pembaca XML yang ditentukan.

(Diperoleh dari SecurityTokenSerializer)
ReadKeyIdentifierClauseCore(XmlReader)

Membaca inti klausa pengidentifikasi kunci menggunakan yang ditentukan XmlReader.

ReadKeyIdentifierCore(XmlReader)

Membaca inti pengidentifikasi kunci menggunakan XmlReader.

ReadToken(XmlReader, SecurityTokenResolver)

Membaca token keamanan yang ditujukkan oleh pembaca XML yang ditentukan.

(Diperoleh dari SecurityTokenSerializer)
ReadTokenCore(XmlReader, SecurityTokenResolver)

Membaca inti token menggunakan XmlReader.

ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)
TryCreateKeyIdentifierClauseFromTokenXml(XmlElement, SecurityTokenReferenceStyle, SecurityKeyIdentifierClause)

Mencoba membuat klausa pengidentifikasi kunci dari token yang dinyatakan sebagai XML.

WriteKeyIdentifier(XmlWriter, SecurityKeyIdentifier)

Menulis pengidentifikasi kunci yang ditentukan menggunakan penulis XML yang ditentukan.

(Diperoleh dari SecurityTokenSerializer)
WriteKeyIdentifierClause(XmlWriter, SecurityKeyIdentifierClause)

Menulis klausa pengidentifikasi kunci yang ditentukan menggunakan penulis XML yang ditentukan.

(Diperoleh dari SecurityTokenSerializer)
WriteKeyIdentifierClauseCore(XmlWriter, SecurityKeyIdentifierClause)

Menulis inti klausa pengidentifikasi kunci dengan klausa pengidentifikasi kunci tertentu menggunakan yang ditentukan XmlWriter.

WriteKeyIdentifierCore(XmlWriter, SecurityKeyIdentifier)

Menulis inti pengidentifikasi kunci dengan klausa pengidentifikasi kunci tertentu menggunakan XmlWriter.

WriteToken(XmlWriter, SecurityToken)

Menulis token keamanan yang ditentukan menggunakan penulis XML yang ditentukan.

(Diperoleh dari SecurityTokenSerializer)
WriteTokenCore(XmlWriter, SecurityToken)

Menulis inti token dengan token keamanan tertentu menggunakan yang ditentukan XmlWriter.

Berlaku untuk