Partager via


AuthorizationContext Classe

Définition

Fournit des informations contextuelles sur un événement d’autorisation. Cela inclut le principal qui représente l’appelant, la ressource demandée et l’action en cours d’exécution.

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

Exemples

L’exemple de code utilisé dans la AuthorizationContext rubrique est extrait de l’exemple 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 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 par souci de concision. Pour plus d’informations sur cet exemple et d’autres exemples disponibles pour WIF et sur l’emplacement où les télécharger, consultez l’index d’exemple de code WIF.

Le code suivant montre la CheckAccess méthode du gestionnaire d’autorisation de revendications personnalisées. Fonction qui évalue le principal en fonction de la ressource et de l’action spécifiée dans l’appel AuthorizationContext . Cette fonction retourne soit true , falsesoit , qui accorde ou refuse 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 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 indépendamment des revendications 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’autorisations 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 sous la forme d’une collection de revendications ; Toutefois, dans la plupart des cas, chaque collection contient une seule revendication.

Constructeurs

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

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

AuthorizationContext(ClaimsPrincipal, String, String)

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

Propriétés

Nom Description
Action

Obtient l’action pour laquelle le principal doit être autorisé.

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

Nom Description
Equals(Object)

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

(Hérité de Object)
GetHashCode()

Sert de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient la Type de l’instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Objectactuel.

(Hérité de Object)
ToString()

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

(Hérité de Object)

S’applique à