Udostępnij przez


ClientRolePrincipal.IsInRole(String) Metoda

Definicja

Pobiera wartość wskazującą, czy użytkownik reprezentowany przez element 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 za pomocą tej metody wyświetlić przycisk tylko wtedy, gdy użytkownik znajduje się w roli "menedżer". Ten przykład wymaga Button nazwy managerOnlyButton z początkową Visible wartością falsewłaściwości .

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 metoda zwracana przez właściwość jest wywoływana IsInRolestaticIPrincipalThread.CurrentPrincipal. Można jednak rzutować CurrentPrincipal wartość właściwości na ClientRolePrincipal odwołanie, aby jawnie wywołać tę metodę, jak pokazano w sekcji Przykład.

Metoda IsInRole będzie zawsze zwracana false , jeśli logowanie użytkownika wygasło. Nie będzie to miało miejsca, jeśli aplikacja wywołuje metodę IsInRole jednorazowo 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 niezbędna tylko wtedy, gdy w konfiguracji aplikacji wybrano opcję Wymagaj od użytkowników ponownego logowania się za każdym razem, gdy plik cookie serwera wygaśnie .

Dotyczy

Zobacz też