IStackWalk.Assert 方法

定義

主張呼叫程式碼可以存取目前權限物件所識別的資源,即使堆疊中較高的呼叫者尚未獲得存取該資源的權限。

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

例外狀況

呼叫碼沒有 Assertion

備註

呼叫 Assert 會停止對呼叫堆疊較高來電者的權限檢查。 因此,即使這些呼叫者沒有必要的權限,他們仍然可以存取資源。 只有當呼叫 Assert 的程式碼通過了對所主張權限的安全檢查時,斷言才有效。

Assert呼叫 的有效性直到呼叫代碼返回呼叫者,或後續呼叫Assert使先前的斷言失效為止。 另外, RevertAssertRevertAll 移除待處理 Assert的。

Assert 因為申請許可無法成功而被忽視。 然而,如果呼叫堆疊Demand較低的程式碼呼叫該權限,當堆疊路徑到達嘗試呼叫SecurityException的程式碼時,會拋出 a Assert 。 這是因為呼叫Assert的程式碼沒有被授權,儘管它嘗試過。Assert

注意事項

由於呼叫 Assert 移除了必須授權所有呼叫鏈中程式碼才能存取指定資源的要求,若使用不當,可能會引發安全漏洞。 因此,使用時應格外謹慎。

適用於

另請參閱