ClientRolePrincipal.IsInRole(String) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene un valore che indica se l'utente rappresentato dal ClientRolePrincipal si trova nel ruolo specificato.
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
Parametri
- role
- String
Ruolo da controllare.
Restituisce
true
se l'utente è nel ruolo specificato; false
se l'utente non è nel ruolo specificato o non è autenticato.
Implementazioni
Esempio
Il codice di esempio seguente illustra come usare questo metodo per visualizzare un pulsante solo quando l'utente si trova nel ruolo "manager". Questo esempio richiede un Button denominato managerOnlyButton
con un valore iniziale della proprietà Visible di 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
Commenti
In genere, si chiamerà il metodo IsInRole del IPrincipal restituito dalla proprietà static
Thread.CurrentPrincipal. Tuttavia, è possibile eseguire il cast del valore della proprietà CurrentPrincipal a un riferimento ClientRolePrincipal per chiamare questo metodo in modo esplicito, come illustrato nella sezione Example.
Il metodo IsInRole restituirà sempre false
se l'account di accesso utente è scaduto. Ciò non si verifica se l'applicazione chiama il metodo IsInRole una volta poco dopo l'autenticazione. Se l'applicazione deve recuperare i ruoli utente in altri momenti, potrebbe essere necessario aggiungere codice per riconvalidare gli utenti il cui account di accesso è scaduto. Se tutti gli utenti validi vengono assegnati ai ruoli, è possibile determinare se l'account di accesso è scaduto chiamando il metodo ClientRoleProvider.GetRolesForUser. Se non vengono restituiti ruoli, l'account di accesso è scaduto. Per un esempio di questa funzionalità, vedere il metodo GetRolesForUser. Questa funzionalità è necessaria solo se è stata selezionata Richiedi agli utenti di accedere di nuovo ogni volta che il cookie del server scade nella configurazione dell'applicazione.
Si applica a
Vedi anche
- GetRolesForUser(String)
- IPrincipal
- IsInRole(String)
- CurrentPrincipal
-
Client Application Services - Procedura: Configurare i servizi applicazioni client