次の方法で共有


PermissionSet.PermitOnly メソッド

現在の PermissionSet のサブセットではない任意の PermissionSet に対して、呼び出しコードを通じて渡す Demand が失敗する原因となります。

Public Overridable Sub PermitOnly() Implements _
   IStackWalk.PermitOnly
[C#]
public virtual void PermitOnly();
[C++]
public: virtual void PermitOnly();
[JScript]
public function PermitOnly();

実装

IStackWalk.PermitOnly

解説

PermitOnly は、通常は成功するスタック ウォークが失敗する原因となる点で、 Deny に似ています。両者の相違点は、 Deny はスタック ウォークが失敗する原因となるアクセス許可を指定するのに対し、 PermitOnly はスタック ウォークが失敗する原因とはならないアクセス許可だけを指定することです。このメソッドを呼び出すと、コードを使用してアクセスできるリソースが、指定されたリソースだけになります。

与えられていないアクセス許可を要求しても失敗するため、そのようなアクセス許可に対して PermitOnly を呼び出しても無視されます。ただし、コール スタック内の下位にあるコードがそのアクセス許可に対して Demand を呼び出すと、 PermitOnly の呼び出しを試行するコードにスタック ウォークが達したときに、 SecurityException がスローされます。これは、コードがアクセス許可に対して PermitOnly を呼び出そうとしても、 PermitOnly を呼び出したコードにそのアクセス許可が与えられていないために発生します。通常、コール スタックは、コール スタック内で上位にあるメソッドが下位にあるメソッドを呼び出すことができるように、下方向に影響力を持つものとして表されます。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, Common Language Infrastructure (CLI) Standard

参照

PermissionSet クラス | PermissionSet メンバ | System.Security 名前空間 | PermitOnly | セキュリティ チェックのオーバーライド