ClientRolePrincipal.IsInRole(String) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft einen Wert ab, der angibt, ob der durch die ClientRolePrincipal dargestellte Benutzer in der angegebenen Rolle ist.
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
true
, wenn sich der Benutzer in der angegebenen Rolle befindet; false
, wenn sich der Benutzer nicht in der angegebenen Rolle befindet oder nicht authentifiziert ist.
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 Button namens managerOnlyButton
mit einem anfänglichen Visible Eigenschaftswert von false
erforderlich.
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 von der static
Thread.CurrentPrincipal Eigenschaft zurückgegebenen IPrincipal 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 immer false
zurück, wenn die Benutzeranmeldung abgelaufen ist. Dies tritt nicht auf, wenn Ihre Anwendung die IsInRole Methode einmal kurz nach der Authentifizierung aufruft. Wenn Ihre Anwendung Benutzerrollen zu anderen Zeiten abrufen muss, möchten Sie möglicherweise Code hinzufügen, um Benutzer, deren Anmeldung abgelaufen ist, erneut zu aktualisieren. Wenn allen gültigen Benutzern Rollen zugewiesen sind, können Sie ermitteln, ob die Anmeldung abgelaufen ist, indem Sie die ClientRoleProvider.GetRolesForUser-Methode aufrufen. Wenn keine Rollen zurückgegeben werden, ist die Anmeldung abgelaufen. Ein Beispiel für diese Funktionalität finden Sie in der GetRolesForUser-Methode. Diese Funktionalität ist nur erforderlich, wenn Sie Benutzer aufgefordert haben, sich erneut anzumelden, wenn das Servercookie in Ihrer Anwendungskonfiguration abläuft.