ServiceAuthorizationManager ServiceAuthorizationManager ServiceAuthorizationManager ServiceAuthorizationManager Class

Définition

Assure le contrôle d'accès des autorisations pour les opérations de service.Provides authorization access checking for service operations.

public ref class ServiceAuthorizationManager
public class ServiceAuthorizationManager
type ServiceAuthorizationManager = class
Public Class ServiceAuthorizationManager
Héritage
ServiceAuthorizationManagerServiceAuthorizationManagerServiceAuthorizationManagerServiceAuthorizationManager

Exemples

L'exemple suivant montre une classe appelée MyServiceAuthorizationManager qui hérite de ServiceAuthorizationManager et substitue la méthode CheckAccessCore.The following example shows a class named MyServiceAuthorizationManager that inherits from the ServiceAuthorizationManager and overrides the CheckAccessCore method.

 public class MyServiceAuthorizationManager : ServiceAuthorizationManager
 {
protected override bool CheckAccessCore(OperationContext operationContext)
{                
  // Extract the action URI from the OperationContext. Match this against the claims
  // in the AuthorizationContext.
  string action = operationContext.RequestContext.RequestMessage.Headers.Action;
  
  // Iterate through the various claim sets in the AuthorizationContext.
  foreach(ClaimSet cs in operationContext.ServiceSecurityContext.AuthorizationContext.ClaimSets)
  {
	// Examine only those claim sets issued by System.
	if (cs.Issuer == ClaimSet.System)
	{
	  // Iterate through claims of type "http://www.contoso.com/claims/allowedoperation".
           foreach (Claim c in cs.FindClaims("http://www.contoso.com/claims/allowedoperation", Rights.PossessProperty))
	  {
		// If the Claim resource matches the action URI then return true to allow access.
		if (action == c.Resource.ToString())
		  return true;
	  }
	}
  }
  
  // If this point is reached, return false to deny access.
  return false;                 
}
 }

Public Class MyServiceAuthorizationManager
    Inherits ServiceAuthorizationManager
    
    Protected Overrides Function CheckAccessCore(ByVal operationContext As OperationContext) As Boolean 
        ' Extract the action URI from the OperationContext. Match this against the claims.
        ' in the AuthorizationContext.
        Dim action As String = operationContext.RequestContext.RequestMessage.Headers.Action
        
        ' Iterate through the various claimsets in the AuthorizationContext.
        Dim cs As ClaimSet
        For Each cs In  operationContext.ServiceSecurityContext.AuthorizationContext.ClaimSets
            ' Examine only those claim sets issued by System.
            If cs.Issuer Is ClaimSet.System Then
                ' Iterate through claims of type "http://www.contoso.com/claims/allowedoperation".
                Dim c As Claim
                For Each c In  cs.FindClaims("http://www.contoso.com/claims/allowedoperation", _
                     Rights.PossessProperty)
                    ' If the Claim resource matches the action URI then return true to allow access.
                    If action = c.Resource.ToString() Then
                        Return True
                    End If
                Next c
            End If
        Next cs 
        ' If this point is reached, return false to deny access.
        Return False
    
    End Function 
End Class 

Remarques

Cette classe est chargée d'évaluer toutes les stratégies (règles établissant ce qu'un utilisateur est autorisé à faire), de comparer les stratégies aux revendications d'un client, d'attribuer la valeur AuthorizationContext au ServiceSecurityContext résultant et de communiquer la décision d'autorisation autorisant ou refusant l'accès à une opération de service donnée par un appelant.This class is responsible for evaluating all policies (rules that define what a user is allowed to do), comparing the policies to claims made by a client, setting the resulting AuthorizationContext to the ServiceSecurityContext, and providing the authorization decision whether to allow or deny access for a given service operation for a caller.

Le CheckAccessCore méthode est appelée chaque fois qu’une tentative d’accès à une ressource est effectuée par l’infrastructure Windows Communication Foundation (WCF).The CheckAccessCore method is called by the Windows Communication Foundation (WCF) infrastructure each time an attempt to access a resource is made. La méthode retourne la valeur true ou false afin d'autoriser ou de refuser l'accès, respectivement.The method returns true or false to allow or deny access, respectively.

Le ServiceAuthorizationManager fait partie de WCFmodèle d’identité infrastructure.The ServiceAuthorizationManager is part of the WCFIdentity Model infrastructure. Le modèle d'identité vous permet de créer des stratégies et schémas d'autorisation personnalisés.The Identity Model enables you to create custom authorization policies and custom authorization schemes. Pour plus d’informations sur le fonctionnement du modèle d’identité, consultez la gestion des revendications et autorisation avec le modèle d’identité.For more information about how the Identity Model works, see Managing Claims and Authorization with the Identity Model.

Autorisation personnaliséeCustom Authorization

Cette classe n'effectue pas de vérification des autorisations et autorise les utilisateurs à accéder à toutes les opérations de service.This class does not perform any authorization and allows users to access all service operations. Si vous voulez limiter les autorisations, vous devez créer un gestionnaire d'autorisations personnalisé chargé de vérifier les stratégies personnalisées.To provide more restrictive authorization, you must create a custom authorization manager that checks custom policies. Pour ce faire, héritez à partir de cette classe et remplacez la méthode CheckAccessCore.To do this, inherit from this class and override the CheckAccessCore method. Spécifiez l'instance de la classe dérivée par le biais de la propriété ServiceAuthorizationManager.Specify the instance of the derived class through the ServiceAuthorizationManager property.

Dans CheckAccessCore, l'application peut utiliser l'objet OperationContext pour accéder à l'identité de l'appelant (ServiceSecurityContext).In CheckAccessCore, the application can use the OperationContext object to access the caller identity (ServiceSecurityContext).

La propriété IncomingMessageHeaders, qui retourne un objet MessageHeaders, permet à l'application d'accéder au service (To) et à l'opération (Action).By getting the IncomingMessageHeaders property, which returns a MessageHeaders object, the application can access the service (To), and the operation (Action).

La propriété RequestContext, qui retourne un objet RequestContext permet à l'application d'accéder à l'intégralité du message de demande (RequestMessage) et de prendre la décision d'autorisation en conséquence.By getting the RequestContext property, which returns a RequestContext object, the application can access the entire request message (RequestMessage) and perform the authorization decision accordingly.

Pour voir un exemple, consultez Comment : Créer un gestionnaire d’autorisation personnalisé pour un Service.For an example, see How to: Create a Custom Authorization Manager for a Service.

Pour créer des stratégies d'autorisation personnalisées, implémentez la classe IAuthorizationPolicy.To create custom authorization policies, implement the IAuthorizationPolicy class. Pour voir un exemple, consultez Comment : Créer une stratégie d’autorisation personnalisée.For an example, see How to: Create a Custom Authorization Policy.

Pour créer une revendication personnalisée, utilisez la classe Claim.To create a custom claim, use the Claim class. Pour voir un exemple, consultez Comment : Créer une revendication personnalisée.For an example, see How to: Create a Custom Claim. Pour comparer des revendications personnalisées, vous devez comparer des revendications, comme indiqué dans Comment : Comparer des revendications.To compare custom claims, you must compare claims, as shown in How to: Compare Claims.

Pour plus d’informations, consultez l’autorisation personnalisée.For more information, see Custom Authorization.

Vous pouvez définir le type d’un gestionnaire d’autorisations personnalisé à l’aide de la <serviceAuthorization> dans un fichier de configuration d’application cliente.You can set the type of a custom authorization manager using the <serviceAuthorization> in a client application configuration file.

Constructeurs

ServiceAuthorizationManager() ServiceAuthorizationManager() ServiceAuthorizationManager() ServiceAuthorizationManager()

Initialise une nouvelle instance de la classe ServiceAuthorizationManager.Initializes a new instance of the ServiceAuthorizationManager class.

Méthodes

CheckAccess(OperationContext) CheckAccess(OperationContext) CheckAccess(OperationContext) CheckAccess(OperationContext)

Vérifie l'autorisation pour le contexte d'opération donné.Checks authorization for the given operation context.

CheckAccess(OperationContext, Message) CheckAccess(OperationContext, Message) CheckAccess(OperationContext, Message) CheckAccess(OperationContext, Message)

Vérifie l'autorisation pour le contexte d'opération donné lorsque l'accès à un message est requis.Checks authorization for the given operation context when access to a message is required.

CheckAccessCore(OperationContext) CheckAccessCore(OperationContext) CheckAccessCore(OperationContext) CheckAccessCore(OperationContext)

Vérifie l'autorisation pour le contexte d'opération donné selon l'évaluation de la stratégie par défaut.Checks authorization for the given operation context based on default policy evaluation.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Détermine si l'objet spécifié est identique à l'objet actuel.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetAuthorizationPolicies(OperationContext) GetAuthorizationPolicies(OperationContext) GetAuthorizationPolicies(OperationContext) GetAuthorizationPolicies(OperationContext)

Obtient l'ensemble des stratégies intervenant dans l'évaluation de la stratégie.Gets the set of policies that participate in policy evaluation.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Fait office de fonction de hachage par défaut.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Obtient le Type de l'instance actuelle.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Crée une copie superficielle de l'objet Object actuel.Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

Retourne une chaîne qui représente l'objet actuel.Returns a string that represents the current object.

(Inherited from Object)

S’applique à

Voir aussi