ClaimsPrincipal クラス

定義

複数の要求ベース ID をサポートする IPrincipal 実装。

public ref class ClaimsPrincipal : System::Security::Principal::IPrincipal
public class ClaimsPrincipal : System.Security.Principal.IPrincipal
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public class ClaimsPrincipal : System.Security.Principal.IPrincipal
type ClaimsPrincipal = class
    interface IPrincipal
[<System.Runtime.InteropServices.ComVisible(true)>]
[<System.Serializable>]
type ClaimsPrincipal = class
    interface IPrincipal
Public Class ClaimsPrincipal
Implements IPrincipal
継承
ClaimsPrincipal
派生
属性
実装

次の例では、HTTP 要求でユーザーが提示した要求を抽出し、HTTP 応答に書き込みます。 現在のユーザーは、次のように読み取 HttpContext られます ClaimsPrincipal。 その後、要求がそこから読み取られ、応答に書き込まれます。

ClaimsPrincipal principal = HttpContext.Current.User as ClaimsPrincipal;  
if (null != principal)  
{  
   foreach (Claim claim in principal.Claims)  
   {  
      Response.Write("CLAIM TYPE: " + claim.Type + "; CLAIM VALUE: " + claim.Value + "</br>");  
   }  
}  

注釈

.NET Framework 4.5 以降、Windows Identity Foundation (WIF) とクレーム ベースの ID は、.NET Frameworkに完全に統合されます。 つまり、.NET Frameworkのプリンシパルを表す多くのクラスは、単にインターフェイスを実装するのではなく、派生ClaimsPrincipalしていますIPrincipal。 インターフェイスの IPrincipal 実装に加えて、 ClaimsPrincipal 要求の操作に役立つプロパティとメソッドを公開します。

ClaimsPrincipal は ID のコレクションを公開します。各 ID は ClaimsIdentity. 一般的なケースでは、プロパティを介して Identities アクセスされるこのコレクションには、1 つの要素のみが含まれます。

ほとんどのプリンシパル クラスの ClaimsPrincipal 派生元となるプリンシパルとして .NET 4.5 を導入しても、ID に対処する方法を変更する必要はありません。 しかし、それはより多くの可能性を開き、より細かいアクセス制御を実行するより多くのチャンスを提供します。 次に例を示します。

  • アプリケーション コード自体は、現在のプリンシパルに含まれる要求を直接操作して、追加の認証、承認、パーソナル化のタスクを推進できます。

  • 要求処理パイプラインを使用してリソースを前面に配置できます。これは、実行がコードに到達する前でも認証要求と承認ポリシーを処理できます。 たとえば、カスタム要求認証マネージャー (クラスから派生するクラスのインスタンス) を使用して、Web ベースのアプリケーションまたはサービスを ClaimsAuthenticationManager 構成できます。 構成すると、要求処理パイプラインは、要求認証マネージャーで、受信要求のコンテキストを表すメソッドを渡すClaimsPrincipalメソッドを呼び出Authenticateします。 要求認証マネージャーは、受信要求の値に基づいて認証を実行できます。 また、受信要求セットに要求をフィルター処理、変換、または追加することもできます。 たとえば、ローカル ユーザー プロファイルなどのローカル データ ソースから作成された新しい要求を使用して、受信要求セットを強化するために使用できます。

  • カスタム要求承認マネージャー (クラスから派生するクラスのインスタンス) を使用して、Web ベースのアプリケーションを ClaimsAuthorizationManager 構成できます。 構成すると、要求処理パイプラインによってAuthorizationContext受信ClaimsPrincipalがパッケージされ、要求承認マネージャーでメソッドがCheckAccess呼び出されます。 その後、要求承認マネージャーは、受信要求に基づいて承認を適用できます。

  • インライン要求ベースのコード アクセス チェックは、カスタム要求承認マネージャーを使用してアプリケーションを構成し、クラスを ClaimsPrincipalPermission 使用して命令型アクセス チェックを実行するか、宣言型アクセス チェックを ClaimsPrincipalPermissionAttribute 実行することで実行できます。 要求ベースのコード アクセス チェックは、処理パイプラインの外部でインラインで実行されるため、要求承認マネージャーが構成されている限り、すべてのアプリケーションで使用できます。

要求にClaimsPrincipal関連付けられているプリンシパルのインスタンス、またはスレッドが実行されているプリンシパルのインスタンスを証明書利用者 (RP) アプリケーションで取得するには、プロパティClaimsPrincipalをキャストThread.CurrentPrincipalします。 オブジェクトに ClaimsPrincipal 関連付けられている要求は、その Claims プロパティを使用して使用できます。 このプロパティは Claims 、プリンシパルに関連付けられている ID に含まれるすべての要求を返します。 複数ClaimsIdentityのインスタンスがClaimsPrincipal含まれている一般的でない場合は、プロパティを使用するか、プロパティをIdentities使用してプライマリ ID にIdentityアクセスできます。 ClaimsPrincipal には、これらの要求を検索する方法がいくつか用意されており、言語統合クエリ (LINQ) が完全にサポートされています。 ID は、またはAddIdentityメソッドを使用してプリンシパルにAddIdentities追加できます。

注意

ID を ClaimsPrincipal追加するには、呼び出し元が完全な信頼を持っている必要があります。

既定では、WIF は、プロパティから返すプライマリ ID を選択するときにオブジェクトに優先順位 WindowsIdentity を付 Identity けます。 この動作を変更するには、プロパティを介してデリゲートを PrimaryIdentitySelector 指定して選択を実行します。 このプロパティは ClaimsPrincipalSelector 、プロパティに対して同様の機能を Current 提供します。

要求ベースのモデルでは、プリンシパルが指定されたロールにあるかどうかは、基になる ID によって提示される要求によって決定されます。 このメソッドは IsInRole 基本的に、プリンシパルに関連付けられている各 ID を調べて、指定されたロール値を持つ要求を所有しているかどうかを判断します。 ロール チェック中に調べる必要がある要求を決定するために使用される要求の種類 (プロパティによって Claim.Type 表されます) は、その ClaimsIdentity.RoleClaimType プロパティを介して ID に指定されます。 したがって、ロールチェック中に調べられた要求は、プリンシパルに関連付けられているさまざまな ID に対して異なる種類にすることができます。

コンストラクター

ClaimsPrincipal()

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

ClaimsPrincipal(BinaryReader)

BinaryReader を指定して、ClaimsPrincipal のインスタンスを初期化します。

ClaimsPrincipal(IEnumerable<ClaimsIdentity>)

指定した要求 ID を使用して、ClaimsPrincipal クラスの新しいインスタンスを初期化します。

ClaimsPrincipal(IIdentity)

指定された ID から ClaimsPrincipal クラスの新しいインスタンスを初期化します。

ClaimsPrincipal(IPrincipal)

指定されたプリンシパルから ClaimsPrincipal クラスの新しいインスタンスを初期化します。

ClaimsPrincipal(SerializationInfo, StreamingContext)

ISerializable を使用して作成されたシリアル化ストリームから、ClaimsPrincipal クラスの新しいインスタンスを初期化します。

プロパティ

Claims

この要求プリンシパルと関連付けられているすべての要求 ID のすべての要求を含むコレクションを取得します。

ClaimsPrincipalSelector

Current プロパティによって返される要求プリンシパルを選択するために使用するデリゲートを取得または設定します。

Current

現在の要求プリンシパルを取得します。

CustomSerializationData

派生型によって提供される追加データが含まれています。 通常、WriteTo(BinaryWriter, Byte[]) の呼び出し時に設定されます。

Identities

このクレーム プリンシパルと関連付けられているクレーム ID をすべて含むコレクションを取得します。

Identity

この要求プリンシパルに関連付けられたプライマリ要求 ID を取得します。

PrimaryIdentitySelector

Identity プロパティによって返されるクレーム ID を選択するために使用するデリゲートを取得または設定します。

メソッド

AddIdentities(IEnumerable<ClaimsIdentity>)

指定された要求 ID をこの要求プリンシパルに追加します。

AddIdentity(ClaimsIdentity)

指定された要求 ID をこの要求プリンシパルに追加します。

Clone()

このインスタンスの新しいコピーを作成します。

CreateClaimsIdentity(BinaryReader)

新しい要求の ID を作成します。

Equals(Object)

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

(継承元 Object)
FindAll(Predicate<Claim>)

指定した述語に一致するすべてのクレームを取得します。

FindAll(String)

すべての要求、または指定された要求の種類を持つ要求を取得します。

FindFirst(Predicate<Claim>)

指定した述語に一致する最初のクレームを取得します。

FindFirst(String)

指定したクレームの種類の最初のクレームを取得します。

GetHashCode()

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

(継承元 Object)
GetObjectData(SerializationInfo, StreamingContext)

SerializationInfo オブジェクトに、現在の ClaimsPrincipal オブジェクトをシリアル化するために必要なデータを格納します。

GetType()

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

(継承元 Object)
HasClaim(Predicate<Claim>)

この要求プリンシパルに関連付けられている要求 ID のいずれかに、指定された述語と一致する要求が含まれているかどうかを判断します。

HasClaim(String, String)

この要求プリンシパルに関連付けられているクレーム ID のいずれかに、指定された要求の種類と値を持つ要求が含まれているかどうかを判断します。

IsInRole(String)

この要求プリンシパルが表すエンティティ (ユーザー) が、指定したロールにあるかどうかを示す値を返します。

MemberwiseClone()

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

(継承元 Object)
ToString()

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

(継承元 Object)
WriteTo(BinaryWriter)

BinaryWriter を使用してシリアル化します。

WriteTo(BinaryWriter, Byte[])

BinaryWriter を使用してシリアル化します。

適用対象

こちらもご覧ください