次の方法で共有


方法 : カスタム クレームを作成する

Windows Communication Foundation (WCF) の ID モデル インフラストラクチャでは、一連の組み込みクレームの種類と権限、およびその種類と権限を使用して Claim インスタンスを作成するヘルパー関数が提供されます。この組み込みクレームは、既定で WCF をサポートするクライアント資格情報の型内にある情報をモデル化するように作成されています。多くの場合はこの組み込みクレームで十分ですが、一部のアプリケーションでカスタム クレームが必要になる場合があります。クレームは、クレームが適用されるリソースを示すクレームの種類と、リソースにアサートされる権限で構成されます。このトピックでは、カスタム クレームを作成する方法について説明します。

プリミティブ データ型に基づくカスタム クレームを作成するには

  1. カスタム クレームを作成するには、クレームの種類、リソースの値、および権限を Claim コンストラクタに渡します。

    1. クレームの種類の一意の値を指定します。
      クレームの種類は一意の文字列識別子です。カスタム クレームを作成する場合は、クレームの種類に使用される文字列識別子が一意になるようにしてください。WCF によって定義されたクレームの種類の一覧については、ClaimTypes クラスを参照してください。
    2. プリミティブ データ型とリソースの値を選択します。
      リソースはオブジェクトです。CLR 型のリソースにはプリミティブを指定できます。たとえば、StringInt32、または任意のシリアル化可能な型を指定できます。クレームは WCF によりさまざまな点でシリアル化されるため、CLR 型のリソースはシリアル化可能なものにする必要があります。プリミティブ型はシリアル化できます。
    3. WCF で定義されている権限か、カスタム権限の一意の値を選択します。
      権限は一意の文字列識別子です。WCF で定義された権限は、Rights クラスで定義されています。
      カスタム クレームを作成する場合、権限に使用されている文字列識別子が一意になるようにしてください。
      次のコード例では、Driver's License という名前のリソース用の http://example.org/claims/simplecustomclaim というクレームの種類と PossessProperty 権限を持つカスタム クレームを作成します。

プリミティブ以外のデータ型に基づくカスタム クレームを作成するには

  1. クレームの種類、リソースの値、Claim コンストラクタへの権限を渡すことで、カスタム クレームを作成します。

    1. クレームの種類の一意の値を指定します。
      クレームの種類は一意の文字列識別子です。カスタム クレームを作成する場合、クレームの種類に使用されている文字列識別子が一意になるようにしてください。WCF によって定義されたクレームの種類の一覧については、ClaimTypes クラスを参照してください。
    2. リソース用のシリアル化可能な、プリミティブ型以外の型を選択または定義します。
      リソースはオブジェクトです。クレームは WCF によりさまざまな点でシリアル化されるため、CLR 型のリソースはシリアル化可能なものにする必要があります。プリミティブ型は既にシリアル化できます。
      新しい型を作成する場合は、DataContractAttribute をクラスに適用します。また、クレームの一部としてシリアル化する必要のある新しい型のすべてのメンバにも DataMemberAttribute 属性を適用します。
      MyResourceType というカスタム リソース型を定義するコード例を次に示します。
    3. WCF で定義されている権限か、カスタム権限の一意の値を選択します。
      権限は一意の文字列識別子です。WCF で定義された権限は Rights クラスで定義されています。
      カスタム クレームを作成する場合、権限に使用されている文字列識別子が一意になるようにしてください。
      次のコード例では、http://example.org/claims/complexcustomclaim というクレームの種類 (MyResourceType カスタム リソース型) および PossessProperty 権限を持つカスタム クレームを作成します。

次のコード例で、プリミティブ リソース型を持つカスタム クレームと、プリミティブ以外のリソース型を持つカスタム クレームの作成方法を示します。

関連項目

リファレンス

Claim
Rights
ClaimTypes
DataContractAttribute
DataMemberAttribute

概念

ID モデルを使用したクレームと承認の管理
ID モデルを使用したクレームと承認の管理