IStackWalk.Assert メソッド

定義

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

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

例外

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

注釈

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

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

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

注意事項

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

適用対象

こちらもご覧ください