Udostępnij za pośrednictwem


ClientRolePrincipal.IsInRole(String) Metoda

Definicja

Pobiera wartość wskazującą, czy użytkownik reprezentowany przez ClientRolePrincipal znajduje się w określonej roli.

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

Parametry

role
String

Rola do sprawdzenia.

Zwraca

true, jeśli użytkownik znajduje się w określonej roli; false, jeśli użytkownik nie znajduje się w określonej roli lub nie jest uwierzytelniony.

Implementuje

Przykłady

Poniższy przykładowy kod pokazuje, jak używać tej metody do wyświetlania przycisku tylko wtedy, gdy użytkownik znajduje się w roli "menedżer". Ten przykład wymaga Button o nazwie managerOnlyButton z początkową wartością właściwości Visiblefalse.

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

Uwagi

Zwykle wywołasz metodę IsInRoleIPrincipal zwróconą przez właściwość staticThread.CurrentPrincipal. Można jednak rzutować wartość właściwości CurrentPrincipal na odwołanie ClientRolePrincipal w celu jawnego wywołania tej metody, jak pokazano w sekcji Przykład.

Metoda IsInRole zawsze zwraca false, jeśli logowanie użytkownika wygasło. Nie będzie to występować, jeśli aplikacja wywołuje metodę IsInRole raz krótko po uwierzytelnieniu. Jeśli aplikacja musi pobierać role użytkowników w innym czasie, może być konieczne dodanie kodu w celu ponownego stosowania użytkowników, których logowanie wygasło. Jeśli wszyscy prawidłowi użytkownicy są przypisani do ról, możesz określić, czy logowanie wygasło, wywołując metodę ClientRoleProvider.GetRolesForUser. Jeśli nie zostaną zwrócone żadne role, logowanie wygasło. Aby zapoznać się z przykładem tej funkcji, zobacz metodę GetRolesForUser. Ta funkcja jest wymagana tylko wtedy, gdy wybrano opcję Wymagaj od użytkowników ponownego logowania się za każdym razem, gdy plik cookie serwera wygaśnie w konfiguracji aplikacji.

Dotyczy

Zobacz też