Share via


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 出しチェーン内のすべてのコードに、指定したリソースにアクセスするためのアクセス許可を付与する必要があるという要件が削除されるため、正しく使用されていないか不適切に使用されると、セキュリティの脆弱性が発生する可能性があります。 そのため、慎重に使用する必要があります。

適用対象

こちらもご覧ください