WSSecurityTokenSerializer クラス

定義

WS-Security、WS-Trust、および 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
継承
WSSecurityTokenSerializer

次のコードは、このクラスのカスタム オーバーライドを示しています。

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

コンストラクター

名前 説明
WSSecurityTokenSerializer()

WSSecurityTokenSerializer クラスの新しいインスタンスを初期化します。

WSSecurityTokenSerializer(Boolean)

WSSecurityTokenSerializer クラスの新しいインスタンスを初期化します。

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

WSSecurityTokenSerializer クラスの新しいインスタンスを初期化します。

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

WSSecurityTokenSerializer クラスの新しいインスタンスを初期化します。

WSSecurityTokenSerializer(SecurityVersion, Boolean, SamlSerializer)

WSSecurityTokenSerializer クラスの新しいインスタンスを初期化します。

WSSecurityTokenSerializer(SecurityVersion, Boolean)

WSSecurityTokenSerializer クラスの新しいインスタンスを初期化します。

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

WSSecurityTokenSerializer クラスの新しいインスタンスを初期化します。

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

WSSecurityTokenSerializer クラスの新しいインスタンスを初期化します。

WSSecurityTokenSerializer(SecurityVersion)

WSSecurityTokenSerializer クラスの新しいインスタンスを初期化します。

プロパティ

名前 説明
DefaultInstance

このクラスの既定のインスタンスを取得します。

EmitBspRequiredAttributes

BSP 必須属性を出力するかどうかを示す値を取得します。

MaximumKeyDerivationLabelLength

キー派生ラベルの最大長を取得します。

MaximumKeyDerivationNonceLength

キー派生 nonce の最大長を取得します。

MaximumKeyDerivationOffset

キー派生の最大オフセットを取得します。

SecurityVersion

セキュリティ バージョンを取得します。

メソッド

名前 説明
CanReadKeyIdentifier(XmlReader)

このシリアライザーが、指定した XML リーダーによって参照される <KeyIdentifier> 要素を読み取ることができるかどうかを判断します。

(継承元 SecurityTokenSerializer)
CanReadKeyIdentifierClause(XmlReader)

このシリアライザーが、指定した XML リーダーによって参照される <KeyIdentifier> 要素内の句を読み取ることができるかどうかを判断します。

(継承元 SecurityTokenSerializer)
CanReadKeyIdentifierClauseCore(XmlReader)

指定したリーダーを使用してキー識別子句コアを読み取ることができるかどうかを示す値を取得します。

CanReadKeyIdentifierCore(XmlReader)

指定したリーダーを使用してキー識別子コアを読み取ることができるかどうかを示す値を取得します。

CanReadToken(XmlReader)

このシリアライザーが、指定した XML リーダーが指すセキュリティ トークンを読み取ることができるかどうかを判断します。

(継承元 SecurityTokenSerializer)
CanReadTokenCore(XmlReader)

指定したリーダーを使用してトークン コアを読み取ることができるかどうかを示す値を取得します。

CanWriteKeyIdentifier(SecurityKeyIdentifier)

このシリアライザーが指定したキー識別子を書き込むことができるかどうかを判断します。

(継承元 SecurityTokenSerializer)
CanWriteKeyIdentifierClause(SecurityKeyIdentifierClause)

このシリアライザーが指定したキー識別子句を書き込むことができるかどうかを判断します。

(継承元 SecurityTokenSerializer)
CanWriteKeyIdentifierClauseCore(SecurityKeyIdentifierClause)

指定したキー識別子句を持つキー識別子句コアを書き込むことができるかどうかを示す値を取得します。

CanWriteKeyIdentifierCore(SecurityKeyIdentifier)

指定したキー識別子句を持つキー識別子コアを書き込むことができるかどうかを示す値を取得します。

CanWriteToken(SecurityToken)

このシリアライザーが指定したセキュリティ トークンを XML に書き込むことができるかどうかを判断します。

(継承元 SecurityTokenSerializer)
CanWriteTokenCore(SecurityToken)

指定したセキュリティ トークンを持つトークン コアを書き込むことができるかどうかを示す値を取得します。

CreateKeyIdentifierClauseFromTokenXml(XmlElement, SecurityTokenReferenceStyle)

XML として表されるトークンからキー識別子句を作成します。

Equals(Object)

指定したオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetTokenTypeUri(Type)

指定した型のセキュリティ トークンの URI を取得します。

GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
MemberwiseClone()

現在の Objectの簡易コピーを作成します。

(継承元 Object)
ReadKeyIdentifier(XmlReader)

指定した XML リーダーを使用してキー識別子を読み取ります。

(継承元 SecurityTokenSerializer)
ReadKeyIdentifierClause(XmlReader)

指定した XML リーダーを使用して、キー識別子句を読み取ります。

(継承元 SecurityTokenSerializer)
ReadKeyIdentifierClauseCore(XmlReader)

指定した XmlReaderを使用して、キー識別子句のコアを読み取ります。

ReadKeyIdentifierCore(XmlReader)

指定した XmlReaderを使用してキー識別子コアを読み取ります。

ReadToken(XmlReader, SecurityTokenResolver)

指定した XML リーダーが指すセキュリティ トークンを読み取ります。

(継承元 SecurityTokenSerializer)
ReadTokenCore(XmlReader, SecurityTokenResolver)

指定した XmlReaderを使用してトークン コアを読み取ります。

ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)
TryCreateKeyIdentifierClauseFromTokenXml(XmlElement, SecurityTokenReferenceStyle, SecurityKeyIdentifierClause)

XML として表されるトークンからキー識別子句を作成しようとします。

WriteKeyIdentifier(XmlWriter, SecurityKeyIdentifier)

指定した XML ライターを使用して、指定したキー識別子を書き込みます。

(継承元 SecurityTokenSerializer)
WriteKeyIdentifierClause(XmlWriter, SecurityKeyIdentifierClause)

指定した XML ライターを使用して、指定したキー識別子句を書き込みます。

(継承元 SecurityTokenSerializer)
WriteKeyIdentifierClauseCore(XmlWriter, SecurityKeyIdentifierClause)

指定した XmlWriterを使用して、指定したキー識別子句を持つキー識別子句コアを書き込みます。

WriteKeyIdentifierCore(XmlWriter, SecurityKeyIdentifier)

指定した XmlWriterを使用して、指定したキー識別子句を持つキー識別子コアを書き込みます。

WriteToken(XmlWriter, SecurityToken)

指定した XML ライターを使用して、指定したセキュリティ トークンを書き込みます。

(継承元 SecurityTokenSerializer)
WriteTokenCore(XmlWriter, SecurityToken)

指定した XmlWriterを使用して、指定したセキュリティ トークンを使用してトークン コアを書き込みます。

適用対象