PermissionSet.Demand 方法

定義

如果在呼叫堆疊中較高的所有呼叫端都尚未被授與由目前執行個體所指定之權限,則會在執行階段強制執行 SecurityException

public:
 virtual void Demand();
public void Demand ();
public virtual void Demand ();
abstract member Demand : unit -> unit
override this.Demand : unit -> unit
Public Sub Demand ()
Public Overridable Sub Demand ()

實作

例外狀況

呼叫鏈結中的呼叫端沒有要求的權限。

範例

下列程式碼範例示範如何使用 Demand 方法來要求許可權集合中的擁有權限。 此程式碼範例是提供給 類別之較大範例的 PermissionSet 一部分。

// Demand all the permissions in the set.
Console::WriteLine( "Demand all permissions." );
ps1->Demand();
// Demand all the permissions in the set.
Console.WriteLine("Demand all permissions.");
ps1.Demand();
' Demand all the permissions in the set.
Console.WriteLine("Demand all permissions.")
ps1.Demand()

備註

Demand 上使用 PermissionSet ,以確保所有呼叫端在集合中具有一個作業的擁有權限。

不會檢查呼叫這個方法的程式碼許可權;檢查會從該程式碼的立即呼叫端開始,並繼續進行堆疊。 呼叫堆疊通常表示為相應減少,因此呼叫堆疊呼叫方法中的方法會降低呼叫堆疊。 Demand 只有在未擲回 時 SecurityException 才會成功。

PermissionSet如果 包含不繼承自 CodeAccessPermission 的許可權, Demand 也會呼叫這些許可權的方法。

適用於