IPermission.Demand メソッド


セキュリティ要件が満たされない場合、実行時に SecurityException をスローします。Throws a SecurityException at run time if the security requirement is not met.

 void Demand();
public void Demand ();
abstract member Demand : unit -> unit
Public Sub Demand ()


このメソッドは、通常、呼び出し元にリソースへのアクセス許可があることを保証するために、安全なライブラリによって使用されます。This method is typically used by secure libraries to ensure that callers have permission to access a resource. たとえば、セキュリティで保護されたクラスライブラリ内のファイルクラスは、呼び出し元によって要求されたファイル操作を実行する前に、必要な FileIOPermission に対して Demand を呼び出します。For example, a file class in a secure class library calls Demand for the necessary FileIOPermission before performing a file operation requested by the caller.

このインターフェイスメソッドを実装するクラスの大部分は、完全なスタックウォークを実行することによってセキュリティ条件を満たすため、必ずしもスタックウォークが実行されるわけではありません。Although the majority of the classes that implement this interface method satisfy the security criteria by performing a full stack walk, a stack walk is not necessarily performed. スタックウォークを実行しない実装の例としては、PrincipalPermission.Demandがあります。An example of an implementation that does not perform a stack walk is PrincipalPermission.Demand.

スタックウォークを実行すると、このメソッドを呼び出すコードのアクセス許可は検査されません。このチェックは、そのコードの直前の呼び出し元から開始され、スタックを進めます。When a stack walk is performed, the permissions of the code that calls this method are not examined; the check begins from the immediate caller of that code and proceeds up the stack. 呼び出し履歴は、通常、コールスタックの上位にあるメソッドが呼び出し履歴の下位にあるメソッドを呼び出すように、拡張ダウンとして表されます。The call stack is typically represented as growing down, so that methods higher in the call stack call methods lower in the call stack. Demand は、SecurityException が発生しなかった場合にのみ成功します。Demand succeeds only if no SecurityException is raised.