Share via


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上的程式代碼較低呼叫該許可權,當堆疊逐步解說到達嘗試呼叫 Assert的程式代碼時,SecurityException會擲回 。 這是因為呼叫 Assert 的程式代碼尚未被授與許可權,即使它嘗試 Assert 它也一樣。

警告

由於呼叫會移除呼叫 Assert 鏈結中所有程式代碼都必須被授與存取指定資源的許可權,因此如果不正確或不當使用,它可能會開啟安全性弱點。 因此,應該謹慎使用。

適用於

另請參閱