Como: Funções de usuário de acesso com aplicativo cliente Services
Você pode usar os serviços de aplicativos cliente para recuperar informações dos papéis de um serviço de funções ASP.NET AJAX existentes.Para obter informações adicionais sobre como configurar o serviço de funções, consulte Usando Funções de Informações com AJAX do ASP.NET.
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: Configurar serviços de aplicativos do cliente. Este procedimento requer acesso a uma serviço de funções ASP.NET AJAX em execução.Para obter orientação sobre testes ponto-a-ponto dos recursos de serviços aplicativo cliente, consulte Demonstra Passo a passo: Usando serviços aplicativo 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 staticThread.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 serviços aplicativo 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: Configurar serviços de aplicativos do cliente.
Consulte também
Tarefas
Como: Configurar serviços de aplicativos do cliente
Demonstra Passo a passo: Usando serviços aplicativo cliente
Conceitos
Visão geral dos serviços de aplicativos do cliente
Usando Funções de Informações com AJAX do ASP.NET