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的程式碼時,會拋出 a Assert 。 這是因為呼叫Assert的程式碼沒有被授權,儘管它嘗試過。Assert
注意事項
由於呼叫 Assert 移除了必須授權所有呼叫鏈中程式碼才能存取指定資源的要求,若使用不當,可能會引發安全漏洞。 因此,使用時應格外謹慎。