ClientRolePrincipal.IsInRole(String) Metod

Definition

Hämtar ett värde som anger om användaren som representeras av ClientRolePrincipal är i den angivna rollen.

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

Parametrar

role
String

Den roll som ska kontrolleras.

Returer

true om användaren är i den angivna rollen; false om användaren inte är i den angivna rollen eller inte autentiseras.

Implementeringar

Exempel

Följande exempelkod visar hur du använder den här metoden för att visa en knapp endast när användaren har rollen "chef". Det här exemplet kräver ett Button namngivet managerOnlyButton med ett initialt Visible egenskapsvärde på 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

Kommentarer

Normalt anropar du metoden för IsInRole den IPrincipal som returneras av staticThread.CurrentPrincipal egenskapen. Du kan dock omvandla egenskapsvärdet CurrentPrincipal till en ClientRolePrincipal referens för att anropa den här metoden explicit, vilket visas i avsnittet Exempel.

Metoden IsInRole returneras false alltid om användarinloggningen har upphört att gälla. Detta inträffar inte om programmet anropar IsInRole metoden en gång strax efter autentiseringen. Om ditt program måste hämta användarroller vid andra tillfällen kanske du vill lägga till kod för att återuppta användare vars inloggning har upphört att gälla. Om alla giltiga användare har tilldelats roller kan du avgöra om inloggningen har upphört att gälla genom att anropa ClientRoleProvider.GetRolesForUser metoden. Om inga roller returneras har inloggningen upphört att gälla. Ett exempel på den här funktionen finns i GetRolesForUser metoden. Den här funktionen är bara nödvändig om du har valt Kräv att användare loggar in igen när servercookien upphör att gälla i programkonfigurationen.

Gäller för

Se även