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

Boolean

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 IsInRole static IPrincipal Thread.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 . Aby uzyskać więcej informacji, zobacz How to: Configure Client Application Services (Instrukcje: konfigurowanie usług aplikacji klienckich).

Dotyczy

Zobacz też