Udostępnij za pośrednictwem


ClaimsPrincipalPermission.Demand Metoda

Definicja

Sprawdza, czy bieżący podmiot zabezpieczeń ma autoryzację dla par zasobów skojarzonych z bieżącym wystąpieniem.

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

Implementuje

Wyjątki

Bieżący podmiot zabezpieczeń nie może zostać przypisany z ClaimsPrincipalelementu .

-lub-

Nie skonfigurowano ClaimsAuthorizationManager .

Sprawdzanie autoryzacji nie powiodło się.

Przykłady

W poniższym przykładzie pokazano, jak chronić zasób przy użyciu Demand metody . Skonfigurowany menedżer autoryzacji oświadczeń jest wywoływany w celu oceny bieżącego podmiotu zabezpieczeń względem określonego zasobu i akcji. Jeśli bieżący podmiot zabezpieczeń nie jest autoryzowany dla określonej akcji w określonym zasobie, SecurityException jest zgłaszany. W przeciwnym razie wykonanie następuje.

//
// 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();

Uwagi

Bieżący podmiot zabezpieczeń musi być autoryzowany dla wszystkich par akcji zasobów skojarzonych z tym wystąpieniem lub SecurityException zgłaszany jest wyjątek.

Mimo że konstruktor przyjmuje tylko jeden zasób i akcję, ClaimsPrincipalPermission obiekty można łączyć za pomocą Union metod i Intersect . Uprawnienie utworzone za pomocą tych metod może zawierać wiele par akcji zasobów.

Metoda Demand wywołuje metodę ClaimsAuthorizationManager.CheckAccess skonfigurowanego menedżera autoryzacji oświadczeń z składem AuthorizationContext aktywnego podmiotu zabezpieczeń (CurrentPrincipal), zasobu i akcji dla każdej pary zasobów akcji zawartych w uprawnieniach. Demand Aby pomyślnie uaktywnić podmiot zabezpieczeń, musi być autoryzowany dla wszystkich par akcji zasobów zawartych w uprawnieniach.

Dotyczy