Como: Funções de usuário de acesso com os serviços de aplicativos cliente

Você pode usar os serviços do aplicativo cliente para recuperar informações de função de um existente Microsoft Ajax serviço de funções. Para obter informações sobre como configurar o serviço de funções, consulte Usando as informações sobre funções com o Microsoft Ajax.

O procedimento a seguir demonstra como acessar informações de acesso da função de usuário para usuários autenticados em um aplicativo Formulários do Windows configurado para usar um serviço de funções. Para obter mais informações, consulte Como: Configura os serviços de aplicativo do cliente. Este procedimento requer o acesso a uma execução Microsoft Ajax serviço de funções. Para obter orientação sobre testes ponto-a-ponto dos recursos de serviços aplicativo cliente, consulte Demonstra Passo a passo: Usando os serviços de aplicativo do cliente.

Para determinar se um usuário está em uma função específica

  • Chame o método IsInRole da referência IPrincipal recuperado da static Thread.CurrentPrincipal property. Esse método retorna um valor Boolean que você pode usar para fornecer acesso à funcionalidade especial, como mostrado no exemplo o seguir. Este método retornará false se o usuário não está autenticado ou não está na função especificada.

    O método IsInRole internamente acessa o serviço de funções remoto por meio da classe ClientRoleProvider . Embora você possa acessar a classe ClientRoleProvider diretamente, você normalmente irá acessá-lo indiretamente, conforme mostrado no código o seguir. Para obter mais informações, consulte Visão geral dos serviços de aplicativos do cliente.

    O exemplo de código a seguir pressupõe que o aplicativo contém um Button chamado managerOnlyButton.

    If System.Threading.Thread.CurrentPrincipal.IsInRole("manager") Then
    
        managerOnlyButton.Visible = True
    
    End If
    
    if (System.Threading.Thread.CurrentPrincipal.IsInRole("manager"))
    {
        managerOnlyButton.Visible = true;
    }
    

Programação robusta

O exemplo de código neste tópico demonstra o uso mais simples do serviço de funções em um aplicativo cliente Windows. Quando você acessa funções de usuário por meio de serviços aplicativo cliente, no entanto, seu código pode lançar uma WebException se o serviço não estiver disponível. Para obter um exemplo de como tratar um WebException nesse caso, consulte Demonstra Passo a passo: Usando os serviços de aplicativo do cliente.

Além disso, o método IsInRole sempre retornará false se o logon do usuário expirou. Isso não ocorrerá se o aplicativo chama o método IsInRole uma vez logo após autenticação. Se seu aplicativo deve recuperar funções de usuário em outros momentos, convém adicionar código para revalidar usuários cujo logon tenha expirado. Se todos os usuários válidos forem atribuídos às funções, você pode 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ó é necessária se você tiver selecionado Requer que os usuários façam logon novamente sempre que o servidor de cookie expira em sua configuração de aplicativo. Para obter mais informações, consulte Como: Configura os serviços de aplicativo do cliente.

Consulte também

Tarefas

Como: Configura os serviços de aplicativo do cliente

Demonstra Passo a passo: Usando os serviços de aplicativo do cliente

Referência

ClientRoleProvider

Thread.CurrentPrincipal

IPrincipal.IsInRole

Conceitos

Visão geral dos serviços de aplicativos do cliente

Usando as informações sobre funções com o Microsoft Ajax

Outros recursos

Serviços de Aplicativo Cliente