ClientRolePrincipal.IsInRole(String) Methode

Definition

Ruft einen Wert ab, der angibt, ob der durch ClientRolePrincipal dargestellte Benutzer die angegebene Rolle innehat.

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

Parameter

role
String

Die zu überprüfende Rolle.

Gibt zurück

Boolean

true, wenn der Benutzer die angegebene Rolle aufweist; false, wenn der Benutzer die angegebene Rolle nicht aufweist oder nicht authentifiziert wurde.

Implementiert

Beispiele

Im folgenden Beispielcode wird veranschaulicht, wie Sie diese Methode verwenden, um eine Schaltfläche nur anzuzeigen, wenn sich der Benutzer in der Rolle "Manager" befindet. In diesem Beispiel ist ein Benannter Button managerOnlyButton mit einem anfänglichen Visible Eigenschaftswert von 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

Hinweise

Normalerweise rufen Sie die IsInRole Methode der IPrincipal von der static Thread.CurrentPrincipal Eigenschaft zurückgegebenen Methode auf. Sie können jedoch den CurrentPrincipal Eigenschaftswert in einen ClientRolePrincipal Verweis umwandeln, um diese Methode explizit aufzurufen, wie im Beispielabschnitt gezeigt.

Die IsInRole Methode gibt stets false aus, wenn die Benutzeranmeldung abgelaufen ist. Dies tritt nicht auf, wenn Ihre Anwendung die Methode einmal nach der IsInRole Authentifizierung aufruft. Wenn Ihre Anwendung Benutzerrollen zu anderen Zeiten abrufen muss, empfiehlt es sich, Code hinzufügen, um Benutzer, deren Anmeldung abgelaufen ist, erneut zu überprüfen. Wenn allen gültigen Benutzern Rollen zugewiesen sind, können Sie bestimmen, ob die Anmeldung, abgelaufen ist, in dem Sie die ClientRoleProvider.GetRolesForUser -Methode aufrufen. Wenn keine Rollen ausgegeben, ist die Anmeldung abgelaufen. Ein Beispiel für diese Funktion finden Sie unter der GetRolesForUser -Methode. Diese Funktion ist nur erforderlich, wenn Sie die Option Verlangen, dass sich der Benutzer bei Ablauf des Cookies erneut anmelden in der Anwendungskonfiguration ausgewählt haben. Weitere Informationen finden Sie unter Vorgehensweise: Konfigurieren von Clientanwendungsdiensten.

Gilt für:

Siehe auch