IStackWalk.Assert メソッド

定義

スタック内の上位の呼び出し元にリソースへのアクセス許可が付与されていない場合でも、呼び出し元のコードが現在のアクセス許可オブジェクトによって識別されるリソースにアクセスできることをアサートします。

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

例外

呼び出し元のコードには Assertionがありません。

注釈

呼び出し Assert 呼び出し履歴の上位の呼び出し元に対するアクセス許可チェックを停止します。 そのため、これらの呼び出し元に必要なアクセス許可がない場合でも、リソースにアクセスできます。 アサーションは、 Assert を呼び出すコードが、アサートしているアクセス許可のセキュリティ チェックに合格した場合にのみ有効です。

Assertの呼び出しは、呼び出し元のコードが呼び出し元に戻るまで、または後続のAssert呼び出しによって前のアサーションが無効になるまで有効です。 また、 RevertAssert または RevertAll は保留中の Assertを削除します。

Assert は、そのアクセス許可の要求が成功しないため、許可されていないアクセス許可では無視されます。 ただし、呼び出し履歴の下位のコードがそのアクセス許可Demand呼び出した場合、スタック ウォークがSecurityExceptionを呼び出そうとしたコードに到達すると、Assertがスローされます。 これは、 Assert を呼び出したコードに Assert しようとしたにもかかわらず、アクセス許可が付与されていないために発生します。

Caution

Assertを呼び出すと、呼び出しチェーン内のすべてのコードに、指定されたリソースにアクセスするためのアクセス許可を付与する必要があるという要件が削除されるため、誤って使用されたり不適切に使用されたりすると、セキュリティの脆弱性が開く可能性があります。 そのため、慎重に使用する必要があります。

適用対象

こちらもご覧ください