Поделиться через


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 объекты можно объединять с помощью Union методов и Intersect . Разрешение, созданное с помощью этих методов, может содержать несколько пар "ресурс—действие".

Метод Demand вызывает ClaimsAuthorizationManager.CheckAccess метод настроенного диспетчера авторизации утверждений с активным субъектом AuthorizationContext (CurrentPrincipal), ресурсом и действием для каждой пары "ресурс-действие", содержащейся в разрешении. Для успешного Demand выполнения активного участника необходимо авторизовать для всех пар "ресурс-действие", содержащихся в разрешении .

Применяется к