共用方式為


ClaimsPrincipalPermission.Demand 方法

定義

檢查目前主體是否獲得使用與目前執行個體相關聯之資源/動作配對的授權。

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

實作

例外狀況

不可以從 ClaimsPrincipal 指派目前的主體。

-或-

沒有己設定的 ClaimsAuthorizationManager

授權檢查失敗。

範例

下列範例示範如何使用 方法來保護資源 Demand 。 系統會叫用已設定的宣告授權管理員,以針對指定的資源和動作評估目前的主體。 如果目前主體未獲得指定資源上指定動作的授權,則會擲回 , SecurityException 否則會繼續執行。

//
// Method 2. Programmatic check using the permission class
// Follows model found at http://msdn.microsoft.com/library/system.security.permissions.principalpermission.aspx
//
ClaimsPrincipalPermission cpp = new ClaimsPrincipalPermission("resource", "action");
cpp.Demand();

備註

目前主體必須獲得與此實例相關聯之所有資源動作配對的授權,否則 SecurityException 會擲回例外狀況。

雖然建構函式只會採用單一資源和動作, ClaimsPrincipalPermission 但物件可以透過 UnionIntersect 方法合併。 透過這些方法建立的許可權可能包含多個資源動作配對。

方法 DemandClaimsAuthorizationManager.CheckAccess 叫用已設定宣告授權管理員的方法,其中包含 AuthorizationContext 使用中主體 (CurrentPrincipal) 、資源,以及許可權中包含的每個資源動作組動作動作。 Demand若要讓 成功,作用中主體必須獲得許可權中包含的所有資源動作配對的授權。

適用於