CodeAccessPermission.Assert メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
スタック内の上位の呼び出し元にリソースへのアクセス許可が付与されていない場合でも、呼び出し元のコードがこのメソッドを呼び出すコードを介して、アクセス許可要求によって保護されているリソースにアクセスできることを宣言します。 Assert()を使用すると、セキュリティの問題が発生する可能性があります。
public:
virtual void Assert();
public void Assert();
abstract member Assert : unit -> unit
override this.Assert : unit -> unit
Public Sub Assert ()
実装
例外
注釈
呼び出し履歴は、通常、呼び出し履歴内の上位のメソッドが呼び出し履歴の下位にあるように、拡大して表されます。 Assertを呼び出すと、呼び出し履歴の下位にあるスタック ウォークが、このメソッドを呼び出すコードを超えて呼び出し履歴を進めなくなります。 そのため、呼び出し履歴の上位の呼び出し元がリソースにアクセスするための必要なアクセス許可を持っていない場合でも、必要なアクセス許可でこのメソッドを呼び出すコードを介してアクセスできます。 アサーションは、 Assert を呼び出すコードが、アサートしているアクセス許可のセキュリティ チェックに合格した場合にのみ有効です。
Assertの呼び出しは、呼び出し元のコードが呼び出し元に戻るまで有効です。 フレームでアクティブにできる Assert は 1 つだけです。 フレームにアクティブなAssertが存在する場合にAssertを呼び出そうとすると、SecurityExceptionが発生します。 RevertAssertまたはRevertAllを呼び出して、アクティブなAssertを削除します。
Assert は、そのアクセス許可の要求が成功しないため、許可されていないアクセス許可では無視されます。 ただし、呼び出し履歴の下位のコードがそのアクセス許可Demand呼び出した場合、スタック ウォークがSecurityExceptionを呼び出そうとしたコードに到達すると、Assertがスローされます。 これは、 Assert を呼び出したコードに Assert しようとしたにもかかわらず、アクセス許可が付与されていないために発生します。
Caution
Assertを呼び出すと、呼び出しチェーン内のすべてのコードに、指定したリソースにアクセスするためのアクセス許可を付与する必要があるという要件が削除されるため、誤って使用されたり不適切に使用されたりすると、セキュリティの問題が発生する可能性があります。 そのため、慎重に使用する必要があります。
注意 (継承者)
このメソッドをオーバーライドすることはできません。