ClientRolePrincipal.IsInRole(String) Metodo

Definizione

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à staticThread.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