ClaimsPrincipalPermission.Demand 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
检查当前主体是否获得与当前实例关联的资源操作对的授权。
public:
virtual void Demand();
public void Demand ();
abstract member Demand : unit -> unit
override this.Demand : unit -> unit
Public Sub Demand ()
实现
例外
授权检查已失败。
示例
以下示例演示如何使用 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但对象可以通过 和 Intersect 方法进行组合Union。 通过这些方法创建的权限可能包含多个资源操作对。
方法Demand使用由活动主体 () CurrentPrincipal 、资源以及权限中包含的每个资源操作对的操作组成的 调用ClaimsAuthorizationManager.CheckAccess已配置的声明授权管理器AuthorizationContext的 方法。 若要使 成功, Demand 必须为权限中包含的所有资源操作对授权活动主体。