Como: Configura os serviços de aplicativo do cliente

Este tópico descreve como usar o Visual Studio Project Designer para habilitar e configurar os serviços de aplicativos do cliente. Você pode usar os Serviços de aplicativo cliente para validar os usuários e recuperar funções e configurações de usuário e de um serviço de aplicativo Microsoft Ajax existente. Após a configuração, você pode acessar os serviços habilitados em seu código do aplicativo conforme descrito em Visão geral dos serviços de aplicativos do cliente. Para obter mais informações sobre os serviços de aplicativos Microsoft Ajax, consulte Visão geral sobre Serviços de Aplicativos ASP.NET.

Você pode habilitar e configurar os serviços de aplicativos do cliente na serviços página da Project Designer. A página Serviços atualiza valores no arquivo App.config do seu projeto. Para acessar o Project Designer, use o comando Propriedades no menu Projeto. Para obter mais informações sobre a página Serviços, consulte Página de serviços, o Project Designer. Para obter mais informações sobre o Project Designer , consulte Introdução ao Project Designer.

O procedimento a seguir descreve como executar a configuração básica dos serviços de aplicativo cliente. Opções avançadas de configuração estão descritas nas seções posteriores.

Como: Configurar os Serviços de Aplicativos Cliente

  1. Selecione um nó de projeto no Gerenciador de Soluções, e em seguida, no menu Projeto, clique em Propriedades

    O Project Designer aparecerá.

  2. Clique na guia Serviços. A página Serviços será exibida, conforme mostrado na ilustração a seguir.

    A guia Serviços no designer de projeto

  3. Na página Serviços, selecione Habilitar Serviços de Aplicativo Cliente.

    ObservaçãoObservação

    Serviços de aplicativos do cliente requerem a versão completa do.NET Framework e não são compatíveis com o.NET Framework Client Profile. Se o ativar os serviços de aplicativo do cliente caixa de seleção está desativada, verifique o Target framework é definido como o.NET Framework 3.5 ou posterior. Para exibir o estrutura de destino definindo no C#, abra o Project Designer e clique o aplicativo página. Para exibir o estrutura de destino a configuração de Visual Basic, abra o Project Designer, clique o compilar página e clique Advanced Compile Options.

  4. Selecione Usar Autenticação de Formulários se você pretende fornecer seus próprios controles ou caixas de diálogo de login, ou selecione Usar Autenticação do Windows para usar a identidade fornecida pelo sistema operacional. Para obter mais informações, consulte Visão geral dos serviços de aplicativos do cliente.

    ObservaçãoObservação

    Se você selecionar Usar Autenticação do Windows, os serviços de aplicativo cliente serão automaticamente configurados para usar um banco de dados SQL Server Compact Edition versão 3.5. Isso é indicado na caixa de diálogo Configurações Avançadas dos Serviços, conforme descrito na próxima seção. Se você selecionar Usar Autenticação de Formulários, a configuração Usar String de Conexão Personalizada não será limpa automaticamente. Isso pode resultar em erros se o banco de dados SQL Server Compact 3.5 já foi gerado para usar com a autenticação do Windows. Para corrigir estes erros, desmarque a configuração Usar String de Conexão Personalizada na caixa de diálogo Configurações Avançadas para os Serviços.

  5. Se você selecionou Usar Autenticação de Formulários, na caixa Localização do Serviço de Autenticação, especifique o URL do host do serviço, não incluindo o nome de arquivo. O designer acrescentará automaticamente o nome de arquivo padrão (Authentication_JSON_AppService.axd) quando ele grava o valor no arquivo de configuração.

  6. Opcionalmente, se você selecionou Usar Autenticação de Formulários, você pode especificar um valor na caixa Provedor de Credenciais. O provedor de credenciais deve implementar a interface IClientFormsAuthenticationCredentialsProvider. Usando um provedor de credenciais, você pode separar a interface do usuário de login do resto do código outro do seu aplicativo. Isso permite que você crie uma única caixa de diálogo de login para uso em vários aplicativos. Para obter mais informações, consulte Como: Implementar o Login do usuário com os serviços de aplicativos cliente.

    Se você especificar um provedor de credenciais, você deve especificá-lo como um nome de tipo qualificado para módulos (assemblys). Para obter mais informações, consulte Type.AssemblyQualifiedName e Nomes de Assembly. Na sua forma mais simples, um nome de tipo qualificado para módulos (assemblys) é semelhante ao seguinte exemplo:

    MyNamespace.MyLoginClass, MyAssembly
    
  7. Nas caixas de text Local do Serviço de Funções e Local do serviço de configurações da Web, especifique um local de serviço para cada serviço, não incluindo o nome de arquivo. O designer acrescentará automaticamente os nomes de arquivo padrão (Role_JSON_AppService.axd e Profile_JSON_AppService.axd) quando ele grava o valor no arquivo de configuração.

  8. Opcionalmente, clique em Avançado para modificar as configurações avançadas, como o comportamento de armazenamento em cache local. Para obter mais informações, consulte o próximo procedimento.

Configuração avançada

Os procedimentos a seguir descrevem como configurar serviços de aplicativo cliente para cenários menos comuns. Por exemplo, você pode usar essas opções de configuração para aplicativos implantados em locais públicos, ou para usar um banco de dados criptografado SQL Server Compact Edition versão 3.5 como o cache de dados local.

Para definir configurações avançadas para serviços de aplicativo cliente

  1. Na página Serviços do Project Designer , clique em Avançado .

    A caixa de diálogo Configurações avançadas para Serviços aparece, como mostrado na ilustração a seguir. Para obter mais informações sobre esta caixa de diálogo, consulte Configurações avançadas para a caixa de diálogo de serviços.

    Caixa de diálogo de configurações avançadas de serviços

  2. Marque ou desmarque Salvar hash da senha localmente para ativar login off-line. Quando você seleciona essa opção, um formato criptografado da senha do usuário será armazenado em cache localmente. Isso é útil se você implementar modo off-line para seu aplicativo. Com essa opção selecionada, você pode validar os usuários, mesmo quando a propriedade IsOffline tiver sido definida como true. Para obter mais informações sobre o modo off-line, consulte Como: Trabalhar Offline com os serviços de aplicativos cliente.

  3. Marque ou desmarque Requerer que os usuários façam logon novamente sempre que o cookie do servidor expira. O cookie de autenticação está configurado no serviço remoto e indica por quanto tempo o login do usuário permanecerá ativo. Para obter mais informações sobre como configurar o cookie, consulte o atributo timeout em Elemento de formulários para autenticação (ASP.NET Configurações Schema).

    Se você selecionar esta opção, ao tentar acessar as serviços de funções remoto de configurações da Web após o cookie de autenticação ter expirado será lançada uma WebException. Você pode tratar essa exceção e exibir um caixa de diálogo de login para revalidar os usuários. Para obter um exemplo deste comportamento, consulte Demonstra Passo a passo: Usando os serviços de aplicativo do cliente. Essa opção é útil para aplicativos implantados em locais públicos para certificar-se que os usuários que deixe o aplicativo em execução após o uso não permanecerão autenticados indefinidamente.

    Se você desmarcar essa opção e tentar acessar os serviços remotos após o cookie de autenticação ter expirado, os usuários serão revalidados automaticamente.

  4. Especifique um valor para Tempo Limite do Cache do Serviço de Funções. Defina esse intervalo de tempo para um valor pequeno quando funções são atualizadas com frequência ou para um valor maior para o caso contrário. Se você implementar o modo off-line, defina o intervalo de tempo para um valor grande para impedir que as informações de função de expirem enquanto o aplicativo está off-line.

    O provedor de funções aceesa os valores de função em cache ou o serviço de funções quando você chama o método IsInRole. Para resetar o cache via programação e forçar esse método para acessar o serviço remoto, chame o método ResetCache.

  5. Marque ou desmarque Usar string de conexão personalizada. Para obter mais informações, consulte o próximo procedimento.

Para configurar serviçosde aplicativo cliente para usar um banco de dados para o cache local

  1. Na página Serviços do Project Designer , clique em Avançado .

    A caixa de diálogo Configurações avançadas para Serviços é exibida.

  2. Selecione Usar string de conexão personalizada .

    O valor padrão do Data Source = |SQL/CE| aparece na caixa de texto.

  3. Para gerar e usar um SQL Server Compact Edition versão 3.5 banco de dados, manter o valor de seqüência de caracteres do padrão da conexão. Visual Studio irá gerar um arquivo de banco de dados e colocá-lo no diretório indicado pelo Application.UserAppDataPath propriedade.

  4. Para gerar e usar um banco de dados criptografado SQL Server Compact 3.5 ,adicione valores password e encrypt database para a string de conexão, conforme mostrado no exemplo a seguir.

    ObservaçãoObservação

    Não se esqueça especificar uma senha de alta segurança. Você não pode alterar a senha depois que o banco de dados é gerado.

    Data Source = |SQL/CE|;password=<password>;encrypt database=true
    
  5. Para usar seu próprio Banco de Dados SQL Server, especifique sua própria string de conexão. Para obter mais informações sobre formatos válidos se strings de conexão, consulte a documentação do SQL Server. Este banco de dados não é gerado automaticamente. O string de conexão deve se referir a um banco de dados que você pode criar usando as seguintes instruções SQL.

    CREATE TABLE ApplicationProperties (PropertyName nvarchar(256),
        PropertyValue nvarchar(256))
    CREATE TABLE UserProperties (PropertyName nvarchar(256),
        PropertyValue nvarchar(256))
    CREATE TABLE Roles (UserName nvarchar(256), 
        RoleName nvarchar(256))
    CREATE TABLE Settings (PropertyName nvarchar(256), 
        PropertyStoredAs nvarchar(1), PropertyValue nvarchar(2048))
    

Usando provedores personalizados

Por padrão, o recurso serviços de aplicativo cliente usa os provedores no namespace System.Web.ClientServices.Providers. Quando você configurar o aplicativo usando a página Serviços do Project Designer, referências a estes provedores são adicionados ao seu arquivo App.config. Estes provedores padrão acessam provedores correspondentes no servidor. Os serviços da Web são geralmente configurados para acessar dados do usuário através de provedores como SqlMembershipProvider e SqlRoleProvider.

Se você deseja usar provedores de serviço personalizado, você normalmente alterará os provedores no lado do servidor para que eles afetam todos os aplicativos cliente que acessam o servidor. No entanto, você tem a opção de usar provedores não padrão no lado do cliente. Você pode especificar provedores de autenticação ou de funções personalizados no arquivo App.config do seu projeto, como mostrado no procedimento a seguir. Para obter informações adicionais sobre como criar provedores personalizados de autenticação e de função, consulte Implementando um Provedor de Associação e Implementando um provedor de função. Você também pode usar um provedor de configurações personalizadas, modificando a classe Settings do seu projeto (acessada como Properties.Settings.Default em C# e My.Settings no Visual Basic). Para obter mais informações, consulte Arquitetura das Configurações do Aplicativo.

Para configurar os serviços de aplicativo cliente para usarem provedores não padrão

  1. Para usar um provedor não padrão de autenticação ou de funções, primeiro complete todas as outras definições das configurações usando a página Serviços.

  2. Feche o Project Designer. Isso é necessário porque a página Serviços irá automaticamente atualizar o arquivo App.config mesmo se você não modificar as configurações. Se você modificar manualmente o arquivo App.config, conforme descrito nesse procedimento e, em seguida, retornar à página Serviços, suas modificações serão redefinidas.

  3. No Gerenciador de Soluções , clique duas vezes em App.config.

    O aplicativo arquivo de configuração abre no editor de texto.

  4. Localize o elemento <providers> dentro do elemento <membership> ou <roleManager>. Esses elementos são filhos do elemento <system.web>. O elemento <membership> é usado para especificar provedores de autenticação, e o elemento <roleManager> é usado para especificar os provedores de função.

  5. Adicione um elemento <add> como um filho do elemento <providers>. Você deve especificar os atributos name e type, conforme mostrado no exemplo o seguir. O valor do atributo type deve ser um nome de tipo qualificado para módulos (assemblys). Para obter mais informações, consulte Type.AssemblyQualifiedName e Nomes de Assembly.

    <add name="MyCustomRoleProvider" type="MyNamespace.MyRoleProvider, MyAssembly" />
    
  6. Modifique o atributo defaultProvider do elemento <membership> ou <roleManager> para especificar o valor do nome do elemento <add> que você adicionou na etapa anterior.

    <roleManager enabled="true" defaultProvider="MyCustomRoleProvider">
    

Consulte também

Tarefas

Como: Implementar o Login do usuário com os serviços de aplicativos cliente

Como: Trabalhar Offline com os serviços de aplicativos cliente

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

Referência

Página de serviços, o Project Designer

Configurações avançadas para a caixa de diálogo de serviços

Conceitos

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

Introdução ao Project Designer

Implementando um Provedor de Associação

Implementando um provedor de função

Arquitetura das Configurações do Aplicativo

Outros recursos

Serviços de Aplicativo Cliente

Criando e configurando o banco de dados dos Serviços de Aplicativos para o SQL Server