Compartilhar via


ClientRolePrincipal.IsInRole(String) Método

Definição

Obtém um valor que indica se o usuário representado pelo ClientRolePrincipal está na função especificada.

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

Parâmetros

role
String

A função a ser verificada.

Retornos

true se o usuário estiver na função especificada; false se o usuário não estiver na função especificada ou não estiver autenticado.

Implementações

Exemplos

O código de exemplo a seguir demonstra como usar esse método para exibir um botão somente quando o usuário estiver na função "gerente". Este exemplo requer um Button nomeado managerOnlyButton com um valor de propriedade Visible inicial de 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

Comentários

Normalmente, você chamará o método IsInRole do IPrincipal retornado pela propriedade staticThread.CurrentPrincipal. No entanto, você pode converter o valor da propriedade CurrentPrincipal em uma referência ClientRolePrincipal para chamar esse método explicitamente, conforme demonstrado na seção Exemplo.

O método IsInRole sempre retornará false se o logon do usuário tiver expirado. Isso não ocorrerá se o aplicativo chamar o método IsInRole uma vez logo após a autenticação. Se o aplicativo precisar recuperar funções de usuário em outras ocasiões, convém adicionar código para revalidar usuários cujo logon expirou. Se todos os usuários válidos forem atribuídos a funções, você poderá determinar se o logon expirou chamando o método ClientRoleProvider.GetRolesForUser. Se nenhuma função for retornada, o logon expirou. Para obter um exemplo dessa funcionalidade, consulte o método GetRolesForUser. Essa funcionalidade só será necessária se você tiver selecionado Exigir que os usuários façam logon novamente sempre que o cookie do servidor expirar na configuração do aplicativo.

Aplica-se a

Confira também