IStackWalk.Assert 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
即使堆疊中較高的呼叫端未獲得資源存取權限,呼叫程式碼仍可以存取目前權限物件所識別之資源的判斷提示。
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 它也一樣。
警告
由於呼叫 Assert 會移除呼叫鏈結中所有程式碼都必須被授與存取指定資源的許可權,因此如果不正確或不當使用,可能會開啟安全性弱點。 因此,請務必謹慎使用。
適用於
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應