Condividi tramite


ClientRolePrincipal.IsInRole(String) Metodo

Definizione

Ottiene un valore che indica se l'utente rappresentato dall'oggetto ClientRolePrincipal appartiene al 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 oggetto denominato managerOnlyButton con un valore della proprietà iniziale Visible pari a 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 IsInRole metodo dell'oggetto IPrincipal restituito dalla staticThread.CurrentPrincipal proprietà . Tuttavia, è possibile eseguire il cast del valore della CurrentPrincipal proprietà a un ClientRolePrincipal riferimento per chiamare questo metodo in modo esplicito, come illustrato nella sezione Esempio.

Il metodo IsInRole restituirà sempre false se l'accesso utente è scaduto. Ciò non si verifica se l'applicazione chiama il IsInRole metodo una volta poco 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.

Si applica a

Vedi anche