Comment : accéder aux rôles d'utilisateurs avec les services d'application cliente

Vous pouvez utiliser des services d'application cliente pour extraire des informations de rôle d'un service de rôles Microsoft Ajax existant. Pour plus d'informations sur la configuration du service de rôles, consultez Using Roles Information with ASP.NET AJAX.

La procédure suivante montre comment accéder aux informations de rôle utilisateur pour les utilisateurs authentifiés dans une application Windows Forms configurée pour utiliser un service de rôles. Pour plus d'informations, consultez Comment : configurer les services d'application cliente. Cette procédure requiert l'accès à un service de rôles Microsoft Ajax en cours d'exécution. Pour obtenir des instructions sur le test complet des fonctionnalités des services d'application cliente, consultez Procédure pas à pas : utilisation des services d'application cliente.

Pour déterminer si un utilisateur a un rôle particulier

  • Appelez la méthode IsInRole de la référence IPrincipal extraite de la propriété static Thread.CurrentPrincipal. Cette méthode retourne une valeur Boolean que vous pouvez utiliser pour fournir l'accès aux fonctionnalités spéciales, comme indiqué dans l'exemple suivant. Cette méthode retourne false si l'utilisateur n'est pas authentifié ou n'a pas le rôle spécifié.

    La méthode IsInRole accède en interne au service de rôles distant via la classe ClientRoleProvider. Bien que vous puissiez accéder directement à la classe ClientRoleProvider, vous y accédez généralement de manière indirecte, comme indiqué dans le code suivant. Pour plus d'informations, consultez Vue d'ensemble des services d'application cliente.

    L'exemple de code suivant suppose que votre application contienne un contrôle Button nommé managerOnlyButton.

    If System.Threading.Thread.CurrentPrincipal.IsInRole("manager") Then
    
        managerOnlyButton.Visible = True
    
    End If
    
    if (System.Threading.Thread.CurrentPrincipal.IsInRole("manager"))
    {
        managerOnlyButton.Visible = true;
    }
    

Programmation fiable

L'exemple de code dans cette rubrique montre l'utilisation la plus simple du service de rôles dans une application cliente Windows. Toutefois, lorsque vous accédez aux rôles d'utilisateur via les services d'application cliente, votre code peut lever une WebException si le service n'est pas disponible. Pour obtenir un exemple de gestion d'une WebException dans ce cas, consultez Procédure pas à pas : utilisation des services d'application cliente.

En outre, la méthode IsInRole retourne toujours la valeur false si la connexion de l'utilisateur a expiré. Cela ne se produit pas si votre application appelle une fois la méthode IsInRole peu après l'authentification. Si votre application doit extraire des rôles d'utilisateur à d'autres moments, vous souhaitez peut-être ajouter du code pour revalider les utilisateurs dont la connexion a expiré. Si des rôles sont attribués à tous les utilisateurs valides, vous pouvez déterminer si la connexion a expiré en appelant la méthode ClientRoleProvider.GetRolesForUser. Si aucun rôle n'est retourné, la connexion a expiré. Pour obtenir un exemple de cette fonctionnalité, consultez la méthode GetRolesForUser. Cette fonctionnalité n'est requise que si vous avez sélectionné l'option Imposer aux utilisateurs de se reconnecter chaque fois que le cookie du serveur expire dans la configuration de l'application. Pour plus d'informations, consultez Comment : configurer les services d'application cliente.

Voir aussi

Tâches

Comment : configurer les services d'application cliente

Procédure pas à pas : utilisation des services d'application cliente

Référence

ClientRoleProvider

Thread.CurrentPrincipal

IPrincipal.IsInRole

Concepts

Vue d'ensemble des services d'application cliente

Using Roles Information with ASP.NET AJAX

Autres ressources

Services d'application cliente