AuthorizationContext Třída

Definice

Poskytuje kontextové informace o události autorizace.Provides context information of an authorization event. To zahrnuje objekt zabezpečení, který představuje volajícího, požadovaný prostředek a akci, která se provádí.This includes the principal that represents the caller, the resource that is being requested, and the action that is being performed.

public ref class AuthorizationContext
public class AuthorizationContext
type AuthorizationContext = class
Public Class AuthorizationContext
Dědičnost
AuthorizationContext

Příklady

Příklad kódu, který je použit v AuthorizationContext tématu, je pořízen z Claims Based Authorization ukázky.The code example that is used in the AuthorizationContext topic is taken from the Claims Based Authorization sample. Tato ukázka poskytuje vlastního Správce autorizací deklarací identity, který může schvalovat předměty na základě zásad, které jsou uvedené v části konfigurace.This sample provides a custom claims authorization manager that can authorize subjects based on a policy that is specified in configuration. Tento vlastní správce se skládá ze tří základních komponent: třídy odvozené z ClaimsAuthorizationManager , která implementuje správce, ResourceAction třídu, která spáruje prostředek a akci, a čtecí modul zásad, který čte a kompiluje zásady, které jsou zadány v konfiguračním souboru.This custom manager consists of three basic components: a class derived from ClaimsAuthorizationManager that implements the manager, the ResourceAction class that pairs a resource and an action, and a policy reader that reads and compiles policy that is specified in the configuration file. Tyto zkompilované zásady pak může správce autorizací deklarací identity použít k vyhodnocení objektu zabezpečení, aby mohl autorizovat přístup k prostředkům.This compiled policy can then be used by the claims authorization manager to evaluate a principal in order to authorize access to resources. Ne všechny prvky jsou zobrazeny pro zkrácení v zájmu.Not all elements are shown for the sake of brevity. Informace o této ukázce a dalších ukázkách dostupných pro WIF a o tom, kde je stáhnout, najdete v tématu WIF Code Sample index.For information about this sample and other samples available for WIF and about where to download them, see WIF Code Sample Index.

Následující kód ukazuje CheckAccess metodu vlastního Správce autorizací deklarací identity.The following code shows the CheckAccess method for the custom claims authorization manager. Funkce, která vyhodnocuje objekt zabezpečení založený na prostředku a akci, která je zadána ve AuthorizationContext vyvolání.A function that evaluates the principal based on the resource and action specified in the AuthorizationContext is invoked. Tato funkce vrací buď true nebo false , která buď udělí, nebo odepře přístup k objektu zabezpečení.This function returns either true or false, which either grants or denies access to the principal.

static Dictionary<ResourceAction, Func<ClaimsPrincipal, bool>> _policies = new Dictionary<ResourceAction, Func<ClaimsPrincipal, bool>>();
PolicyReader _policyReader = new PolicyReader();
    /// <summary>
    /// Checks if the principal specified in the authorization context is authorized to perform action specified in the authorization context 
    /// on the specified resoure
    /// </summary>
    /// <param name="pec">Authorization context</param>
    /// <returns>true if authorized, false otherwise</returns>
    public override bool CheckAccess(AuthorizationContext pec)
    {
        //
        // Evaluate the policy against the claims of the 
        // principal to determine access
        //
        bool access = false;
        try
        {
            ResourceAction ra = new ResourceAction(pec.Resource.First<Claim>().Value, pec.Action.First<Claim>().Value);

            access = _policies[ra](pec.Principal);
        }
        catch (Exception)
        {
            access = false;
        }

        return access;
    }
}

Následující kód XML ukazuje příklad zásad autorizace, které byly zadány v konfiguraci.The following XML shows an example of the authorization policy that was specified in configuration. V první zásadě musí mít objekt zabezpečení jednu ze zadaných deklarací, aby bylo možné provést určenou akci u zadaného prostředku.In the first policy, the principal must possess one of the specified claims in order to perform the specified action on the specified resource. V druhé zásadě musí objekt zabezpečení mít obě deklarace identity, aby bylo možné provést určenou akci pro zadaný prostředek.In the second policy, the principal must possess both claims to be able to perform the specified action on the specified resource. U všech ostatních objektů zabezpečení se automaticky udělí přístup bez ohledu na to, jaké deklarace identity má.In all others, the principal is automatically granted access regardless of the claims it possesses.

<system.identityModel>  
  <identityConfiguration>  
    <claimsAuthorizationManager type="ClaimsAuthorizationLibrary.MyClaimsAuthorizationManager, ClaimsAuthorizationLibrary">  
      <policy resource="http://localhost:28491/Developers.aspx" action="GET">  
        <or>  
          <claim claimType="http://schemas.microsoft.com/ws/2008/06/identity/claims/role" claimValue="developer" />  
          <claim claimType="http://schemas.xmlsoap.org/claims/Group" claimValue="Administrator" />  
        </or>  
      </policy>  
      <policy resource="http://localhost:28491/Administrators.aspx" action="GET">  
        <and>  
          <claim claimType="http://schemas.xmlsoap.org/claims/Group" claimValue="Administrator" />  
          <claim claimType="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/country" claimValue="USA" />  
        </and>  
      </policy>  
      <policy resource="http://localhost:28491/Default.aspx" action="GET">  
      </policy>  
      <policy resource="http://localhost:28491/" action="GET">  
      </policy>  
      <policy resource="http://localhost:28491/Claims.aspx" action="GET">  
      </policy>  
    </claimsAuthorizationManager>  

    ...  

  </identityConfiguration>  
</system.identityModel>  

Poznámky

AuthorizationContextTřída představuje kontext, který je používán správcem autorizací deklarací identity, implementací ClaimsAuthorizationManager třídy k určení, zda by měl být objekt zabezpečení (Subject) autorizován k provedení zadané akce pro daný prostředek.The AuthorizationContext class represents the context that is used by a claims authorization manager, an implementation of the ClaimsAuthorizationManager class, to determine whether a principal (subject) should be authorized to perform a specified action on a given resource. Správce autorizací deklarací vyhodnotí v metodě kontext autorizace CheckAccess a buď odepře, nebo udělí přístup na základě deklarací identity prezentovaných objektem zabezpečení.The claims authorization manager evaluates the authorization context in the CheckAccess method and either denies or grants access based on the claims presented by the principal.

PrincipalVlastnost obsahuje objekt zabezpečení, pro který je požadováno autorizaci, Resource vlastnost obsahuje prostředek, na kterém je objekt zabezpečení autorizován, a Action vlastnost obsahuje akce, které má hlavní objekt k provedení na prostředku.The Principal property contains the principal for which authorization is being requested, the Resource property contains the resource on which the principal is being authorized, and the Action property contains the actions that the principal intends to perform on the resource. Jak prostředek, tak akce jsou reprezentovány jako kolekce deklarací; ve většině případů ale každá kolekce obsahuje jednu deklaraci identity.Both the resource and the action are represented as a collection of claims; however, in most cases, each collection contains a single claim.

Konstruktory

AuthorizationContext(ClaimsPrincipal, Collection<Claim>, Collection<Claim>)

Inicializuje novou instanci AuthorizationContext třídy se zadaným objektem zabezpečení, deklarací identity prostředků a deklarací akce.Initializes a new instance of the AuthorizationContext class with the specified principal, resource claim, and action claim.

AuthorizationContext(ClaimsPrincipal, String, String)

Inicializuje novou instanci AuthorizationContext třídy se zadaným objektem zabezpečení, názvem prostředku a názvem akce.Initializes a new instance of the AuthorizationContext class with the specified principal, resource name, and action name.

Vlastnosti

Action

Získá akci, pro kterou má být autorizován objekt zabezpečení.Gets the action for which the principal is to be authorized.

Principal

Získá objekt zabezpečení (předmět), pro který se žádá o autorizaci.Gets the principal (subject) for which authorization is being requested.

Resource

Získá prostředek, na kterém má být objekt zabezpečení autorizován.Gets the resource on which the principal is to be authorized.

Metody

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.Determines whether the specified object is equal to the current object.

(Zděděno od Object)
GetHashCode()

Slouží jako výchozí funkce hash.Serves as the default hash function.

(Zděděno od Object)
GetType()

Získá Type aktuální instanci.Gets the Type of the current instance.

(Zděděno od Object)
MemberwiseClone()

Vytvoří kopii aktuálního seznamu Object .Creates a shallow copy of the current Object.

(Zděděno od Object)
ToString()

Vrátí řetězec, který představuje aktuální objekt.Returns a string that represents the current object.

(Zděděno od Object)

Platí pro