AuthorizationContext Classe

Définition

Fournit les informations de contexte d'un événement d'autorisation. Cela inclut le principal qui représente l'appelant, la ressource demandée et l'action exécutée.

public ref class AuthorizationContext
public class AuthorizationContext
type AuthorizationContext = class
Public Class AuthorizationContext
Héritage
AuthorizationContext

Exemples

L’exemple de code utilisé dans la rubrique est extrait de l’exemple AuthorizationContext Claims Based Authorization . Cet exemple fournit un gestionnaire d’autorisation de revendications personnalisé qui peut autoriser des sujets basés sur une stratégie spécifiée dans la configuration. Ce gestionnaire personnalisé se compose de trois composants de base : une classe dérivée de ClaimsAuthorizationManager ce qui implémente le gestionnaire, la ResourceAction classe qui associe une ressource et une action, et un lecteur de stratégie qui lit et compile la stratégie spécifiée dans le fichier de configuration. Cette stratégie compilée peut ensuite être utilisée par le gestionnaire d’autorisations de revendications pour évaluer un principal afin d’autoriser l’accès aux ressources. Tous les éléments ne sont pas affichés pour la concision. Pour plus d’informations sur cet exemple et d’autres exemples disponibles pour WIF et sur l’emplacement de téléchargement, consultez l’exemple de code WIF.

Le code suivant montre la CheckAccess méthode du gestionnaire d’autorisation des revendications personnalisées. Fonction qui évalue le principal en fonction de la ressource et de l’action spécifiées dans l’appel AuthorizationContext . Cette fonction retourne ou true , qui accorde ou falserefuse l’accès au 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;
    }
}

Le code XML suivant montre un exemple de stratégie d’autorisation qui a été spécifiée dans la configuration. Dans la première stratégie, le principal doit posséder l’une des revendications spécifiées pour effectuer l’action spécifiée sur la ressource spécifiée. Dans la deuxième stratégie, le principal doit posséder les deux revendications pour pouvoir effectuer l’action spécifiée sur la ressource spécifiée. Dans tous les autres, le principal est automatiquement autorisé à accéder, quelle que soit la revendication qu’il possède.

<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>

Remarques

La AuthorizationContext classe représente le contexte utilisé par un gestionnaire d’autorisation de revendications, une implémentation de la ClaimsAuthorizationManager classe, pour déterminer si un principal (objet) doit être autorisé à effectuer une action spécifiée sur une ressource donnée. Le gestionnaire d’autorisations de revendications évalue le contexte d’autorisation dans la CheckAccess méthode et refuse ou accorde l’accès en fonction des revendications présentées par le principal.

La Principal propriété contient le principal pour lequel l’autorisation est demandée, la Resource propriété contient la ressource sur laquelle le principal est autorisé et la Action propriété contient les actions que le principal a l’intention d’effectuer sur la ressource. La ressource et l’action sont représentées comme une collection de revendications; Toutefois, dans la plupart des cas, chaque collection contient une seule revendication.

Constructeurs

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

Initialise une nouvelle instance de la classe AuthorizationContext avec le principal, la revendication de ressources et la revendication d'action spécifiés.

AuthorizationContext(ClaimsPrincipal, String, String)

Initialise une nouvelle instance de la classe AuthorizationContext avec le principal, le nom de ressource et le nom d'action spécifiés.

Propriétés

Action

Obtient l'action pour laquelle l'entité doit être autorisée.

Principal

Obtient le principal (objet) pour lequel l'autorisation est demandée.

Resource

Obtient la ressource sur laquelle le principal doit être autorisé.

Méthodes

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

S’applique à