Condividi tramite


Procedura: accedere a ruoli utente mediante servizi delle applicazioni client

È possibile utilizzare i servizi dell'applicazione client per recuperare informazioni sui ruoli da un servizio di ruoli Microsoft Ajax esistente. Per informazioni sulla configurazione del servizio dei ruoli, vedere Utilizzo di informazioni sui ruoli con Microsoft 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 Microsoft 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 validi 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

Riferimenti

ClientRoleProvider

Thread.CurrentPrincipal

IPrincipal.IsInRole

Concetti

Cenni preliminari sui servizi delle applicazioni client

Utilizzo di informazioni sui ruoli con Microsoft Ajax

Altre risorse

Servizi applicazioni client