次の方法で共有


ClaimsPrincipalPermission.Demand メソッド

定義

現在のインスタンスに関連付けられているリソースとアクションのペアに対して現在のプリンシパルが承認されるかどうかを確認します。

public:
 virtual void Demand();
public void Demand ();
abstract member Demand : unit -> unit
override this.Demand : unit -> unit
Public Sub Demand ()

実装

例外

現在のプリンシパルは ClaimsPrincipal から割り当てることはできません。

- または -

ClaimsAuthorizationManager が構成されていません。

失敗した承認チェック。

次の例は、 メソッドを使用してリソースを保護する方法を Demand 示しています。 構成された要求承認マネージャーが呼び出され、指定したリソースとアクションに対して現在のプリンシパルが評価されます。 現在のプリンシパルが指定したリソースに対して指定されたアクションに対して承認されていない場合は、 SecurityException がスローされます。それ以外の場合は実行が続行されます。

//
// Method 2. Programmatic check using the permission class
// Follows model found at http://msdn.microsoft.com/library/system.security.permissions.principalpermission.aspx
//
ClaimsPrincipalPermission cpp = new ClaimsPrincipalPermission("resource", "action");
cpp.Demand();

注釈

現在のプリンシパルは、このインスタンスに関連付けられているすべてのリソースとアクションのペアに対して承認されている必要があります。または、例外が SecurityException スローされます。

コンストラクターは 1 つのリソースとアクションのみを受け取りますが、 ClaimsPrincipalPermission メソッドと Intersect メソッドを使用してオブジェクトをUnion組み合わせることができます。 これらのメソッドを使用して作成されたアクセス許可には、複数のリソースとアクションのペアが含まれている場合があります。

このメソッドはDemand、アクティブ プリンシパル (CurrentPrincipal)、リソース、およびアクセス許可に含まれる各リソースとアクションのペアで構成された を使用して、構成された要求承認マネージャーAuthorizationContextのメソッドを呼び出ClaimsAuthorizationManager.CheckAccessします。 を Demand 成功させるには、アクセス許可に含まれるすべてのリソースとアクションのペアに対してアクティブ プリンシパルが承認されている必要があります。

適用対象