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)

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

WSSecurityTokenSerializer(SecurityVersion, Boolean)

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

WSSecurityTokenSerializer(SecurityVersion, Boolean, SamlSerializer)

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

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

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

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

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

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

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

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

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)

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

(継承元 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 を使用して、指定したセキュリティ トークンを持つトークン コアを書き込みます。

適用対象