Partager via


ClientRolePrincipal.IsInRole(String) Méthode

Définition

Obtient une valeur indiquant si l’utilisateur représenté par l'ClientRolePrincipal se trouve 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

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 se trouve dans le rôle « gestionnaire ». Cet exemple nécessite un Button nommé managerOnlyButton avec une valeur de propriété de Visible initiale 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 méthode IsInRole de l'IPrincipal retournée par la propriété staticThread.CurrentPrincipal. Toutefois, vous pouvez convertir la valeur de propriété CurrentPrincipal en référence ClientRolePrincipal pour appeler cette méthode explicitement, comme illustré dans la section Exemple.

La méthode IsInRole retourne toujours false si la connexion de l’utilisateur a expiré. Cela ne se produit pas si votre application appelle la méthode IsInRole une fois peu après l’authentification. Si votre application doit récupérer des rôles d’utilisateur à d’autres moments, vous pouvez ajouter du code pour revalider les utilisateurs dont la connexion a expiré. Si tous les utilisateurs valides sont affectés à des rôles, 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 nécessaire que si vous avez sélectionné Exiger que les utilisateurs se reconnectent chaque fois que le cookie du serveur expire dans la configuration de votre application.

S’applique à

Voir aussi