Procedura: accedere a ruoli utente mediante servizi delle applicazioni client
Aggiornamento: novembre 2007
È possibile utilizzare i servizi dell'applicazione client per recuperare informazioni sui ruoli da un servizio ruoli ASP.NET AJAX esistente. Per informazioni sulla configurazione del servizio dei ruoli, vedere Utilizzo delle informazioni sui ruoli con ASP.NET AJAX.
Nella procedura seguente viene illustrato come accedere alle informazioni sui ruoli degli utenti autenticati in un'applicazione Windows Form configurata per utilizzare un servizio dei ruoli. Per ulteriori informazioni, vedere Procedura: configurare i servizi delle applicazioni client. Questa procedura richiede l'accesso a un servizio ruoli ASP.NET AJAX in esecuzione. Per istruzioni sul testing completo delle funzionalità dei servizi dell'applicazione client, vedere Procedura dettagliata: utilizzo di servizi delle applicazioni client.
Per determinare se un utente appartiene a un ruolo particolare
Chiamare il metodo IsInRole del riferimento IPrincipal recuperate dalla proprietà static Thread.CurrentPrincipal. Questo metodo restituisce un valore Boolean che è possibile utilizzare per fornire accesso alle funzionalità speciali, come illustrato nell'esempio seguente. Questo metodo restituirà false se l'utente non è autenticato o non appartiene al ruolo specificato.
Il metodo IsInRole accede internamente al servizio dei ruoli remoto tramite la classe ClientRoleProvider. Anche se è possibile accedere direttamente alla classe ClientRoleProvider, in genere vi si accede indirettamente, come illustrato nel codice seguente. Per ulteriori informazioni, vedere Cenni preliminari sui servizi delle applicazioni client.
Nell'esempio di codice si presume che l'applicazione contenga un controllo Button denominato managerOnlyButton.
If System.Threading.Thread.CurrentPrincipal.IsInRole("manager") Then managerOnlyButton.Visible = True End If
if (System.Threading.Thread.CurrentPrincipal.IsInRole("manager")) { managerOnlyButton.Visible = true; }
Programmazione efficiente
Nel codice di esempio in questo argomento viene illustrato il più semplice utilizzo del servizio ruoli in un'applicazione del client Windows. Quando si accede a ruoli dell'utente tramite servizi dell'applicazione client, il codice può tuttavia generare un'eccezione WebException se il servizio non è disponibile. Per un esempio di come gestire un'eccezione WebException in questo caso, vedere Procedura dettagliata: utilizzo di servizi delle applicazioni client.
Inoltre, il metodo IsInRole restituirà sempre false se l'accesso utente è scaduto. Questo non si verificherà se l'applicazione chiama il metodo IsInRole una volta subito dopo l'autenticazione. Se l'applicazione deve recuperare ruoli utente in altri momenti, è necessario aggiungere il codice per riconvalidare gli utenti con accesso scaduto. Se tutti gli utenti con credenziali valide sono stati assegnati ai ruoli, è possibile determinare se l'accesso è scaduto chiamando il metodo ClientRoleProvider.GetRolesForUser. Se non viene restituito alcun ruolo, l'accesso è scaduto. Per un esempio di questa funzionalità, vedere il metodo GetRolesForUser. Questa funzionalità è necessaria solo se è stato selezionato Richiedi agli utenti di accedere di nuovo a ogni scadenza del cookie del server nella configurazione dell'applicazione. Per ulteriori informazioni, vedere Procedura: configurare i servizi delle applicazioni client.
Vedere anche
Attività
Procedura: configurare i servizi delle applicazioni client
Procedura dettagliata: utilizzo di servizi delle applicazioni client
Concetti
Cenni preliminari sui servizi delle applicazioni client
Utilizzo delle informazioni sui ruoli con ASP.NET AJAX