CodeAccessPermission.PermitOnly メソッド

コール スタックの上位の呼び出し元が、このメソッドを呼び出すコードを使用して、現在のインスタンスによって指定されるリソース以外のすべてのリソースにアクセスできないようにします。

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

実装

IStackWalk.PermitOnly

例外

例外の種類 条件
SecurityException 現在のフレームに既にアクティブな PermitOnly が存在しています。

解説

PermitOnly は、通常は成功するスタック ウォークが失敗する原因となる点で、 Deny に似ています。両者の相違点は、 Deny はスタック ウォークが失敗する原因となるアクセス許可を指定するのに対し、 PermitOnly はスタック ウォークが失敗する原因とはならないアクセス許可だけを指定することです。

このメソッドを呼び出すと、コードを使用してアクセスできるリソースが、指定されたリソースだけになります。 PermitOnly の呼び出しは、呼び出しコードがその呼び出し元に返されるまで有効です。フレームあたり 1 つの PermitOnly だけをアクティブにできます。フレームにアクティブな PermitOnly が存在する場合に PermitOnly を呼び出そうとすると、 SecurityException が発生します。アクティブな PermitOnly を削除するには、 RevertPermitOnly または RevertAll を呼び出します。

与えられていないアクセス許可を要求しても失敗するため、そのようなアクセス許可に対して 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 ファミリ

参照

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