ClientRolePrincipal.IsInRole(String) Méthode

Définition

Obtient une valeur indiquant si l'utilisateur représenté par le ClientRolePrincipal figure dans le rôle spécifié.

public:
 virtual bool IsInRole(System::String ^ role);
public bool IsInRole (string role);
abstract member IsInRole : string -> bool
override this.IsInRole : string -> bool
Public Function IsInRole (role As String) As Boolean

Paramètres

role
String

Le rôle à vérifier.

Retours

true si l'utilisateur est dans le rôle spécifié ; false si l'utilisateur n'est pas dans le rôle spécifié ou n'est pas authentifié.

Implémente

Exemples

L’exemple de code suivant montre comment utiliser cette méthode pour afficher un bouton uniquement lorsque l’utilisateur est dans le rôle « gestionnaire ». Cet exemple nécessite un Button nommé managerOnlyButton avec une valeur de propriété initiale Visible de false.

private void DisplayButtonForManagerRole()
{
    try
    {
        ClientRolePrincipal rolePrincipal =
            System.Threading.Thread.CurrentPrincipal 
            as ClientRolePrincipal;

        if (rolePrincipal != null && rolePrincipal.IsInRole("manager"))
        {
            managerOnlyButton.Visible = true;
        }
    }
    catch (System.Net.WebException)
    {
        MessageBox.Show("Unable to access the roles service.",
            "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
    }
}
Private Sub DisplayButtonForManagerRole()

    Try

        Dim rolePrincipal As ClientRolePrincipal = TryCast( _
            System.Threading.Thread.CurrentPrincipal, ClientRolePrincipal)

        If rolePrincipal IsNot Nothing And _
            rolePrincipal.IsInRole("manager") Then

            managerOnlyButton.Visible = True

        End If

    Catch ex As System.Net.WebException

        MessageBox.Show("Unable to access the role service.", _
            "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning)

    End Try

End Sub

Remarques

Normalement, vous appelez la IsInRole méthode du IPrincipal retourné par la staticThread.CurrentPrincipal propriété . Toutefois, vous pouvez convertir la valeur de la CurrentPrincipal propriété en référence ClientRolePrincipal pour appeler cette méthode explicitement, comme illustré dans la section Exemple.

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 la méthode une fois peu après l’authentification IsInRole . Si votre application doit récupérer 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 votre application.

S’applique à

Voir aussi