ClientRolePrincipal.IsInRole(String) Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
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.