Partilhar via


Passo a Passo: Usando Serviços de Aplicativos do ASP.NET

O ASP.NET fornece serviços de aplicativos na Web que permitem que os aplicativos do cliente acessem a autenticação do usuário, função e as informações do perfil.Essas informações podem ser acessadas por aplicativos do cliente que são escritos em linguagens diferentes e que são executados em diferentes sistemas operacionais.O único requisito é que esses clientes sejam capazes de se comunicar através de protocolo SOAP 1.1.

Essa explicação passo a passo é dividido nas seguintes partes:

  • Parte 1 mostra como configurar um site da Web ASP.NET para expor os serviços de aplicativo.

  • Parte 2 mostra como criar um aplicativo de console do Windows que acessa a autenticação do usuário, funções e as informações do perfil.Nessa explicação passo a passo que você Compilaçãoá um Aplicativo do Console do Windows, mas os serviços de aplicativos ASP.NET estão disponíveis para aplicativos do cliente que podem enviar e receber mensagens em formato SOAP.

Pré-requisitos

Para concluir esta explicação passo a passo, você precisa:

  • .Não é possível usar Microsoft Visual Web Developer 2005 Para este exame Através, pois você irá criar um aplicativo de console do Windows, que não tem suporte no O Visual Web Developer Express Edition.

  • Server Express Edition SQL instalado em seu computador.

Expondo os Serviços do Aplicativo

Esta seção descreve como expor os serviços de aplicativos como parte de um site ASP.NET da Web para que eles possam ser acessados por qualquer cliente na rede.As etapas descritas aqui se aplicam apenas ao servidor.

Observação:

Para esta explicação passo a passo, você irá usar um sistema de arquivos de site.O explicação passo a passo requer que você utilize o Servidor de Desenvolvimento do ASP.NET em vez do IIS para executar os exemplos.

Para criar os serviços do aplicativo Web

  1. Abrir .

  2. Sobre o File Menu, clique em Novo Site da Web.

    O Novo Site da Web caixa de diálogo é exibida.

  3. Em Modelos Visual Studio instaladoSelecione Web Site ASP.NET.

  4. Na Local Na lista, selecione Sistema de arquivos.

  5. Na Folder caixa de texto, nome de site:

    WcfApplicationServices

  6. Clique em OK.

    Visual Studio Cria um novo Site ASP.NET ASP.NET e abre a página Padrão.aspx.

  7. Em Explorer soluçãoClique no nome do site.

  8. Na Propriedades janela, defina Usar Dinâmico portas para Falso.

    Isso instrui Visual Studio Para especificar uma porta fixa em vez de um aleatoriamente Selecionado porta quando ele for iniciado a Servidor de Desenvolvimento do ASP.NET.Para essa explicação passo a passo, você deve ter um número da porta fixo para que você possa usar ao gerar a classes de proxy do cliente e os arquivos de configuração.

  9. Set Número da porta para 8080.

    Observação:

    Você pode usar qualquer porta disponível.Se você usar uma porta diferente, observe o número da porta para que você possa substituir esse número para 8080 posteriormente nessa explicação passo a passo.

Associação do ASP.NET, função e informações de perfil são armazenadas em um banco de dados.Este banco de dados é criado automaticamente quando for necessário.No próximo procedimento, você criará os usuários e as funções para seu aplicativo, que criará automaticamente o banco de dados.

Para criar usuários e informações de função

  1.    Adicionar um O arquivo Global.asax arquivo para o site e Adicionar o código a seguir para ele.

    Na primeira vez que você executar o aplicativo da Web, o código cria um banco de dados local Aspnetdb.mdf, que contém funções Administradores e Amigos.Este banco de dados é usado para armazenar credenciais de usuário e informações de perfil.

  2. Abrir o Default.aspx Página e adicione a seguinte marcação a ela.

    <%@ Page Language= AutoEventWireup= CodeFile= = %>
    
    <!DOCTYPE html PUBLIC  >
    
    <html xmlns=>
    <head id= runat=>
        <title>Application Services Home Page</title>
    </head>
    <body>
        <form id= runat=>
        <div>
            <h2>Enter Users' Information</h2>
    
            The following selections enable you to create users, and assign them roles and
            profile information.
    
            <p>
                <asp:Label ID=  Font-Bold= ForeColor= runat=/>
            </p>
    
            <table border=>
                <tr>
                    <td align=>Login to change profile</td>
                    <td align=><asp:LoginStatus ID= runat= /></td>
                </tr>
                <tr>
                    <td align=>Define profile information (you must login first)</td>
                    <td align=><a href= target=>Profile Information</a></td>
                </tr>
                <tr>
                    <td align=>Create user and assign role</td>
                    <td align=><a href=target=> User</a></td>
                </tr>
    
             </table>
        </div>
    
        </form>
    </body>
    </html>
    
    <%@ Page Language= AutoEventWireup= CodeFile= Inherits= %>
    <!DOCTYPE html PUBLIC "-
    
    <html xmlns="http:
    <head runat=>
        <title>Application Services Home Page</title>
    </head>
    <body>
        <form id= runat=>
        <div>
            <h2>Enter Users' Information</h2>
    
        The following selections enable you to create users, and assign them roles and
            profile information.
    
            <p>
                <asp:Label ID=  Font-Bold= ForeColor= runat=/>
            </p>
    
            <table border=>
                <tr>
                    <td align=>Login to change profile</td>
                    <td align=><asp:LoginStatus ID= runat= /></td>
                </tr>
                <tr>
                    <td align=>Define profile information (you must login first)</td>
                    <td align=><a href= target=>Profile Information</a></td>
                </tr>
                <tr>
                    <td align=>Create user and assign role</td>
                    <td align=><a href=target=>New User</a></td>
                </tr>
    
             </table>
        </div>
    
        </form>
    </body>
    </html>
    
  3. Adicione o seguinte código para o Padrão.aspx arquivo Código-behind file.

     System
     System.Data
     System.Configuration
     System.Collections
     System.Web
     System.Web.Security
     System.Web.UI
     System.Web.UI.WebControls
     System.Web.UI.WebControls.WebParts
     System.Web.UI.HtmlControls
    
       _Default
         System.Web.UI.Page
          Page_Load( sender  Object,  e  EventArgs)
             HttpContext.Current.User.Identity.IsAuthenticated 
                LoggedId.Text = HttpContext.Current.User.Identity.Name + 
    
    
    
    
    
    
     System;
     System.Data;
     System.Configuration;
     System.Collections;
     System.Web;
     System.Web.Security;
     System.Web.UI;
     System.Web.UI.WebControls;
     System.Web.UI.WebControls.WebParts;
     System.Web.UI.HtmlControls;
    
     partial  _Default : System.Web.UI.Page
    {
          Page_Load(object sender, EventArgs e)
        {
             (HttpContext.Current.User.Identity.IsAuthenticated)
            {
                LoggedId.Text = HttpContext.Current.User.Identity.Name +
                    ;
            }
    
        }
    }
    
  4. Adicione uma página chamada Login.aspx e adicione a marcação a seguir:

    <%@ Page Language= AutoEventWireup= %>
    
    <!DOCTYPE html PUBLIC  >
    
    <html xmlns=>
    <head runat=>
        <title>Login Page</title>
    </head>
    <body>
        <form id= runat=>
        <div>
            <asp:Login ID=   runat= />
        </div>
        </form>
    </body>
    </html>
    
    <%@ Page Language= AutoEventWireup= %>
    
    <!DOCTYPE html PUBLIC "-
    
    <html xmlns="http:
    <head runat=>
        <title>Login Page</title>
    </head>
    <body>
        <form id= runat=>
        <div>
            <asp:Login ID=   runat=/>
        </div>
        </form>
    </body>
    </html>
    
  5. Adicionar uma página chamada ProArquivo.aspx e certifique-se de que Coloque o código no arquivo separado está selecionado.

  6. Adicione a seguinte marcação à página Profile.aspx.

    <%@ Page Language= AutoEventWireup= CodeFile= = %>
    
    <!DOCTYPE html PUBLIC  >
    
    <html xmlns=>
    <head id= runat=>
        <title>Profile Page</title>
    </head>
    <body>
        <form id= runat=>
        <div>
            <h3>Current Authenticated User Profile Information</h3> 
    
            <a href=>back to default page</a>
    
            <h4>Read Profile Information</h4>
            <table>
                <tr>
                    <td align=>User Name</td>
                    <td align=>
                        <asp:Label ID= runat= Text=/>
                    </td>
                </tr>
                <tr>
                    <td align=>User Roles</td>
                    <td align=>
                        <asp:Label ID= runat= Text=/>
                    </td>
                </tr>
                <tr>
                    <td align=>First Name</td>
                    <td>
                        <asp:Label ID= runat= Text=/>
                    </td>
                </tr>
                <tr>
                    <td align=>Last Name</td>
                    <td>    
                        <asp:Label ID= runat= Text=/>
                    </td>
                </tr>
                <tr>
                    <td align=>ID#</td>
                    <td>    
                        <asp:Label ID= runat= Text=/>
                    </td>
                </tr>
    
            </table>
            <asp:Button ID= runat= onclick= 
                Text= />
    
            <hr />
    
            <h3>Update Profile Information </h3>
    
            <table>
                <tr>
                    <td align=>First Name</td>
                    <td align=><asp:TextBox ID= runat=/></td>
                </tr>
                <tr>
                    <td align=>Last Name</td>
                    <td align=><asp:TextBox ID= runat=/></td>
                </tr>
                <tr>
                    <td align=>ID#</td>
                    <td align=><asp:TextBox ID= runat=/></td>
                </tr>
    
            </table>
    
            <asp:Button ID= runat= onclick= 
            Text= />
    
        </div>
        </form>
    </body>
    </html>
    
    <%@ Page Language= AutoEventWireup= 
    CodeFile= Inherits= %>
    
    <!DOCTYPE html PUBLIC "-
    
    <html xmlns="http:
    <head id= runat=>
        <title>Profile Page</title>
    </head>
    <body>
        <form id= runat=>
        <div>
            <h3>Current Authenticated User Profile Information</h3> 
    
            <a href=>back to  page</a>
    
            <h4>Read Profile Information</h4>
            <table>
                <tr>
                    <td align=>User Name</td>
                    <td align=>
                        <asp:Label ID= runat= Text=/>
                    </td>
                </tr>
                <tr>
                    <td align=>User Roles</td>
                    <td align=>
                        <asp:Label ID= runat= Text=/>
                    </td>
                </tr>
                <tr>
                    <td align=>First Name</td>
                    <td>
                        <asp:Label ID= runat= Text=/>
                    </td>
                </tr>
                <tr>
                    <td align=>Last Name</td>
                    <td>    
                        <asp:Label ID= runat= Text=/>
                    </td>
                </tr>
                <tr>
                    <td align=>ID#</td>
                    <td>    
                        <asp:Label ID= runat= Text=/>
                    </td>
                </tr>
    
            </table>
            <asp:Button ID= runat= onclick= 
                Text= />
    
            <hr />
    
            <h3>Update Profile Information </h3>
    
            <table>
                <tr>
                    <td align=>First Name</td>
                    <td align=><asp:TextBox ID= runat=/></td>
                </tr>
                <tr>
                    <td align=>Last Name</td>
                    <td align=><asp:TextBox ID= runat=/></td>
                </tr>
                <tr>
                    <td align=>ID#</td>
                    <td align=><asp:TextBox ID= runat=/></td>
                </tr>
    
            </table>
    
            <asp:Button ID= runat= onclick= 
            Text= />
    
        </div>
        </form>
    </body>
    </html>
    
  7. Adicione o seguinte código para o arquivo de code-behind para a página Profile.aspx.

     System
     System.Data
     System.Configuration
     System.Collections
     System.Web
     System.Web.Security
     System.Web.UI
     System.Web.UI.WebControls
     System.Web.UI.WebControls.WebParts
     System.Web.UI.HtmlControls
    
       _Profile
         System.Web.UI.Page
    
         Page_Load( sender  Object,  e  EventArgs)
    
              Profile  ProfileCommon = TryCast(HttpContext.Current.Profile, ProfileCommon)
    
             HttpContext.Current.User.Identity.IsAuthenticated 
    
                Label1.Text = HttpContext.Current.User.Identity.Name
                 roles  () = _
                    System.Web.Security.Roles.GetRolesForUser()
    
                Label2.Text = 
                  r    roles
                    Label2.Text += r + 
    
    
                Label3.Text = Profile.FirstName()
                Label4.Text = Profile.LastName
    
                Label5.Text = Profile.EmployeeId
    
                Label1.Text = 
                Label1.ForeColor = System.Drawing.Color.Red
    
    
    
          Button2_Click( sender  Object,  e  EventArgs)
             HttpContext.Current.User.Identity.IsAuthenticated 
                Label1.Text = HttpContext.Current.User.Identity.Name
                 roles  () = _
                    System.Web.Security.Roles.GetRolesForUser()
                Label2.Text = 
                  r    roles
                    Label2.Text += r + 
    
                Label3.Text = Profile.FirstName
                Label4.Text = Profile.LastName
                Label5.Text = Profile.EmployeeId
    
                Label1.Text = 
                Label1.ForeColor = System.Drawing.Color.Red
    
    
    
          Button1_Click( sender  Object,  e  EventArgs)
             HttpContext.Current.User.Identity.IsAuthenticated 
                Profile.FirstName = TextBox1.Text
                Profile.LastName = TextBox2.Text
                Profile.EmployeeId = TextBox3.Text
    
    
    
    
     System;
     System.Data;
     System.Configuration;
     System.Collections;
     System.Web;
     System.Web.Security;
     System.Web.UI;
     System.Web.UI.WebControls;
     System.Web.UI.WebControls.WebParts;
     System.Web.UI.HtmlControls;
    
     partial  ProfileInformation : System.Web.UI.Page
    {
          Page_Load(object sender, EventArgs e)
        {
    
         ProfileCommon Profile = HttpContext.Current.Profile
                                       ProfileCommon;
    
             (HttpContext.Current.User.Identity.IsAuthenticated)
            {
                Label1.Text = HttpContext.Current.User.Identity.Name;
                string[] roles = Roles.GetRolesForUser();
                Label2.Text = ;
                 (string r  roles)
                {
                    Label2.Text += r + ;
                }
    
                Label3.Text = Profile.FirstName;
                Label4.Text = Profile.LastName;
                Label5.Text = Profile.EmployeeId;
    
            }
    
            {
                Label1.Text = ;
                Label1.ForeColor = System.Drawing.Color.Red;
            }
        }
    
          Button2_Click(object sender, EventArgs e)
        {
             (HttpContext.Current.User.Identity.IsAuthenticated)
            {
                Label1.Text = HttpContext.Current.User.Identity.Name;
                string[] roles = Roles.GetRolesForUser();
                Label2.Text = ;
                 (string r  roles)
                {
                    Label2.Text += r + ;
                }
    
                Label3.Text = Profile.FirstName;
                Label4.Text = Profile.LastName;
                Label5.Text = Profile.EmployeeId;
    
            }
    
            {
                Label1.Text = ;
                Label1.ForeColor = System.Drawing.Color.Red;
            }
        }
    
          Button1_Click(object sender, EventArgs e)
        {
             (HttpContext.Current.User.Identity.IsAuthenticated)
            {
                Profile.FirstName = TextBox1.Text;
                Profile.LastName = TextBox2.Text;
                Profile.EmployeeId = TextBox3.Text;
            }
        }
    }
    

    Esta página permite que você obtenha e altere as informações do perfil de usuário.

  8. Adicione uma página chamada CreateUser.aspx e adicione a marcação a seguir:

    <%@ Page Language= AutoEventWireup= CodeFile= = %>
    
    <!DOCTYPE html PUBLIC  >
    
    <html xmlns=>
    <head runat=>
        <title>Add  User</title>
    </head>
    <body>
        <form id= runat=>
        <div>
    
            <h2>Add  User</h2>
    
            <a href=>back to default page</a>
    
            <asp:CreateUserWizard ID= runat=
              OnCreatedUser=>
                <wizardsteps>
                    <asp:CreateUserWizardStep ID= runat=  />
                    <asp:CompleteWizardStep ID= runat=  />
                </wizardsteps>
            </asp:CreateUserWizard>
            <p> 
                Check the following box to assign the user to the administrator role.
                Otherwise, the user will be assigned to the friends role by default. 
            </p>
            <span style=>Administrator</span> 
            <asp:CheckBox ID= runat= />
    
        </div>
        </form>
    </body>
    </html>
    
    <%@ Page Language= AutoEventWireup= 
    CodeFile= Inherits= %>
    
    <!DOCTYPE html PUBLIC "-
    
    <html xmlns="http:
    <head id= runat=>
        <title>Add New User</title>
    </head>
    <body>
        <form id= runat=>
        <div>
    
            <h2>Add New User</h2>
    
            <a href=>back to  page</a>
    
            <asp:CreateUserWizard ID= runat=
              OnCreatedUser=>
                <wizardsteps>
                    <asp:CreateUserWizardStep ID= runat=  />
                    <asp:CompleteWizardStep ID= runat=  />
                </wizardsteps>
            </asp:CreateUserWizard>
            <p> 
                Check the following box to assign the user to the administrator role.
                Otherwise, the user will be assigned to the friends role  . 
            </p>
            <span style=>Administrator</span> 
            <asp:CheckBox ID= runat= />
    
        </div>
        </form>
    </body>
    </html>
    
  9. Adicione o seguinte código para o arquivo de code-behind para a página CreateUser.aspx.

     System
     System.Data
     System.Configuration
     System.Collections
     System.Web
     System.Web.Security
     System.Web.UI
     System.Web.UI.WebControls
     System.Web.UI.WebControls.WebParts
     System.Web.UI.HtmlControls
    
       CreateUser
         System.Web.UI.Page
          Page_Load( sender  Object,  e  EventArgs)
    
    
    
          On_CreatedUser( sender  Object,  e  EventArgs)
             userName   = CreateUserWizard1.UserName
             CheckBox1.Checked 
                HttpContext.Current.Response.Write(userName)
                Roles.AddUserToRole(userName, )
    
                Roles.AddUserToRole(userName, )
    
    
            CheckBox1.Visible = 
    
            HttpContext.Current.Response.Redirect()
    
    
    
     System;
     System.Data;
     System.Configuration;
     System.Collections;
     System.Web;
     System.Web.Security;
     System.Web.UI;
     System.Web.UI.WebControls;
     System.Web.UI.WebControls.WebParts;
     System.Web.UI.HtmlControls;
    
     partial  CreateUser : System.Web.UI.Page
    {
          Page_Load(object sender, EventArgs e)
        {
    
        }
    
          On_CreatedUser(object sender, EventArgs e)
        {
            string userName = CreateUserWizard1.UserName;
             (CheckBox1.Checked)
            {
                HttpContext.Current.Response.Write(userName);
                Roles.AddUserToRole(userName, );
            }
    
                Roles.AddUserToRole(userName, );
    
            CheckBox1.Visible = ;
    
            HttpContext.Current.Response.Redirect();
        }
    }
    

    Esta página permite que você crer usuários e atribua a eles uma função.

A próxima etapa é para habilitar a autenticação de formulários, funções e propriedades no site da Web.Você faz isso com definições de configurações no arquivo Web.config.

Para configurar a autenticação, funções e propriedades de perfil

  1. Abra o arquivo Web.config do seu site da Web.

  2. Na System.Web Agrupar, Alterar a autenticação Windows padrão para formulários, conforme mostrado no exemplo o seguir:

    < Modo de Autenticação = "Formulários" / &Gt;
    
  3. Na System.Web Agrupar, configure o serviço de funções através de roleManager elemento, como mostrado no exemplo a seguir:

    < roleGerente Habilitado = "Verdadeiro" / >
    
  4. Na System.Web Agrupar, configure o serviço do perfil através de Perfil Seção e seu   properties elemento, como mostrado no exemplo a seguir:

    < perfil ativado = "true" > < propriedades > < Adicionar nome = "FirstName"   type="Cadeia de Caracteres"/ > < Adicionar nome = "Sobrenome"    Tipo = "seqüência" / > < Adicionar nome = "EmployeeId"  Tipo = "seqüência" / > < / propriedades > < / perfil >
    

    Este elemento de configuração define três Pro Propriedades do Arquivo chamado Nome, Sobrenomee EmployeeId.

Agora você pode criar informações do usuário que você usará posteriormente para fazer logon.

Para criar usuários e atribuir informações de perfil.

  1. Em Selecionar o Padrão.aspx página, em seguida, Pressionarionar a tecla F5 para depurar o programa.O navegador exibirá a seguinte URL:

    https://localhost:8080/MeuSiteWeb/Default.aspx

  2. Clique em Novo usuário.

    A página CreateUser.aspx é exibida.

  3. Criar alguns usuários e atribua-os às funções predefinidas.Para fazer isso, Enter as credenciais do usuário e clique em Criar usuário.

    Lembre-se os nomes de usuário e senhas que você criou.Você precisará deles para atribuir ou alterar informações de perfil dos usuários.

    Depois que o usuário for criado, você é redirecionados para a página default.aspx.

  4. Na página default.aspx, clique em Login.

    A página Login.aspx é exibida.

  5. Faça logon usando as credenciais de um dos usuários que você criou anteriormente.

    Se o seu logon for bem-sucedida, você será redirecionado para o Padrão.aspx a página.

  6. Clique em Informações de perfil.

    A página Profile.aspx é exibida.

  7. Insira ou atualize as informações de perfil do usuário conectado digitando o primeiro nome, sobrenome e número de identificação.

  8. Clique em Atualizar De perfil de dados.

  9. Clique em Ler informações de perfil.

    Isso exibe as informações que você acabou de inserir para certificar-se que as propriedades de perfil estão funcionando.

  10. Clique em Voltar para página padrão..

Você terminou de criar usuários e informações do perfil.Você agora fará essa informação disponível para aplicativos do cliente.

Mapeando e Configurando os Serviços de Aplicativos

Antes de poder acessar credenciais do usuário e informações de perfil do cliente, você deve criar arquivos de mapeamento (.svc) que apontem para os serviços de aplicativo.Isso disponibiliza os serviços para qualquer aplicativo que está sendo executado em qualquer plataforma que pode enviar e receber mensagens em formato SOAP.Você também deve configurar o site da Web para que os serviços de aplicativo estejam expostos na rede.

Para criar arquivos de mapeamento de serviços de aplicativos

  1. Adicionar um arquivo serviço WCF (.svc) para o site da Web e nomeie-o como AuthenticationService.svc.

  2. Abra o arquivo AuthenticationServiço.svc, exclua qualquer conteúdo no arquivo e em seguida, copie a seguinte diretiva em o arquivo, que cria uma referência para o [T:System.Web.ApplicationServiços.AuthenticationService] Classe:

    < % @ ServiceHost Service="System.Web.ApplicationServices.AuthenticationService " ServiceHosting="System.Web.ApplicationServices.ApplicationServicesHostFactory " % &Gt;
    
    < % @ ServiceHost Service="System.Web.ApplicationServices.AuthenticationService " ServiceHosting="System.Web.ApplicationServices.ApplicationServicesHostFactory " % &Gt; 
    
  3. Adicione outro arquivo serviço WCF (.svc) para o site da Web e nomine-o RoleService.svc.

  4. Abra o arquivo RoleService.svc e substituir seu conteúdo com a diretiva a seguir, que cria uma referência para o RoleService Classe:

    < % @ ServiceHost Service="System.Web.ApplicationServices.RoleService " ServiceHosting="System.Web.ApplicationServices.ApplicationServicesHostFactory " % &Gt;
    
    < % @ ServiceHost Service="System.Web.ApplicationServices.RoleService " ServiceHosting="System.Web.ApplicationServices.ApplicationServicesHostFactory " % &Gt; 
    
  5. Adicione outro arquivo serviço WCF (.svc) para o site da Web e nomeie-o ProfileService.svc.

  6. Abra o arquivo ProfileService.svc e substituir seu conteúdo com a diretiva a seguir, que cria uma referência para o [T:System.Web.ApplicationServiços.ProfileService] Classe:

    < % @ ServiceHost Service="System.Web.ApplicationServices.ProfileService " ServiceHosting="System.Web.ApplicationServices.ApplicationServicesHostFactory " % &Gt;
    
    < % @ ServiceHost Service="System.Web.ApplicationServices.ProfileService " ServiceHosting="System.Web.ApplicationServices.ApplicationServicesHostFactory " % &Gt; 
    
  7. Salve e feche todos os arquivos .svc.

Agora você pode configurar o aplicativo da Web para expor os serviços de aplicativo.

Para configurar os serviços de aplicativo

  1. Abrir ou Switch ao arquivo web.config do site da Web e na System.Web.Extensions Seção in a o script Elemento, habilitar os serviços do aplicativo através de webServices Seção.

    O exemplo a seguir mostra como ficará a seção de configuração.

     <system.web.extensions>
    
            <scripting>
                <webServices>
                    <authenticationService enabled="true"/>
                    <profileService
                        enabled="true"
                        readAccessProperties="FirstName,LastName,EmployeeId"/>
                    <roleService enabled="true"/>
                </webServices>
            </scripting>
    
        </system.web.extensions>
    
  2. Na System.serviceModel Agrupar, configurar os serviços de aplicativo para que eles podem ser acessados por aplicativos do cliente usando protocolo SOAP.Configurar os serviços Ponto de Extremidade Elemento como mostrado no exemplo a seguir:

        <system.serviceModel>
            <services>
                <service
                    behaviorConfiguration="AppServiceBehaviors"
                    name="System.Web.ApplicationServices.AuthenticationService">
                    <endpoint
                        binding="basicHttpBinding"
                        bindingNamespace="https://asp.net/ApplicationServices/v200"
                        contract="System.Web.ApplicationServices.AuthenticationService"/>
                </service>
    
                <service
                    behaviorConfiguration="AppServiceBehaviors"
                    name="System.Web.ApplicationServices.RoleService">
                    <endpoint
                        binding="basicHttpBinding"
                        bindingNamespace="https://asp.net/ApplicationServices/v200"
                        contract="System.Web.ApplicationServices.RoleService"/>
                </service>
    
                <service
                    behaviorConfiguration="AppServiceBehaviors"
                    name="System.Web.ApplicationServices.ProfileService">
                    <endpoint
                        binding="basicHttpBinding"
                        bindingNamespace="https://asp.net/ApplicationServices/v200"
                        contract="System.Web.ApplicationServices.ProfileService"/>
                </service>
            </services>
    
            <behaviors>
                <serviceBehaviors>
                    <behavior name="AppServiceBehaviors">
                        <serviceMetadata httpGetEnabled="true"/>
                        <serviceDebug includeExceptionDetailInFaults="true"/>
                    </behavior>
                </serviceBehaviors>
            </behaviors>
            <serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
        </system.serviceModel>
    
    

Agora você pode ativar o site para expor os serviços do aplicativo que serão usados por aplicativo cliente do Windows.Isso também permite que você verifique que a infra-estrutura de serviços de aplicativo está funcionando corretamente.

Para ativar o site para expor os serviços de aplicativo

  • É Explorer soluçãoClique com o botão direito do mouse no arquivo AuthenticationService.svc e em seguida, clique em View in Browser.

    O serviço Web é chamado e uma página aparece no navegador que fornece a você informações sobre o serviço.Anote URL do serviço, porque será necessário nas próximas etapas para acessar o serviço a partir de aplicativo cliente.

    Observação:

    Não feche o janela do navegador.Quando você estiver usando o Servidor de Desenvolvimento do ASP.NET, o navegador deve permanecer aberto a fim dos serviços de aplicativos permanecerem ativos.

Você terminou de configurar os serviços de aplicativo na Web para que eles fiquem disponíveis na Web.A próxima etapa é para chamar esses serviços de um aplicativo cliente.

Usando os Serviços do Aplicativo

Esta seção mostra como criar um aplicativo cliente no formulário de um aplicativo de console do Windows para acessar os serviços de aplicativo.Os serviços de aplicativo podem ser acessados por qualquer cliente escrito em qualquer linguagem e sendo executado em qualquer sistema operacional, contanto que o aplicativo cliente possa enviar e receber mensagens em formato SOAP.

Para criar o aplicativo de console cliente, siga estas etapas gerais:

  • Crie um aplicativo cliente

  • Gere arquivos de aplicativo de serviços proxy e um arquivo de configuração relacionados.

  • Adicione o proxy gerado e os arquivos de configuração para o aplicativo cliente e compile o aplicativo.

  • Chame as operações do serviço do aplicativo através dos proxies gerados.

    Observação:

    Se você passar dados confidenciais do usuário, como credenciais de autenticação, use a camada Soquetes Seguros (SSL, usando protocolo HTTPS).Para obter mais informações, consulte Segurança de transporte e Http de segurança e serviços da Web ASP.NET No site do MSDN, e Configurando Secure Sockets Layer no IIS 7.0 No site do IIS.

Para criar um aplicativo de console do Windows

  1. Em Na File Menu, clique em Adicionare em seguida, clique em Novo Projeto.

  2. Selecione seu idioma preferido e em seguida, em Modelos Visual Studio instaladoSelecione Aplicativo de Console.

  3. Nome do aplicativo ApplicationServicesClientDigite um local para o aplicativo e em seguida, clique em OK.

    Visual Studio Adiciona o projeto à solução atual e abre o arquivo de classe padrão.

  4. Substitua o código no arquivo pelo o seguinte código:

     System;
     System.Collections.Generic;
     System.Text;
     System.ServiceModel;
     System.ServiceModel.Activation;
     System.ServiceModel.Channels;
     System.ComponentModel;
     System.Web;
     System.Net;
    
     ApplicationServicesClientConsole
    {
         Program
        {
             CookieContainer GetCookies(OperationContext oc)
            {
                HttpResponseMessageProperty httpResponseProperty =
                    (HttpResponseMessageProperty)oc.IncomingMessageProperties[HttpResponseMessageProperty.Name];
                 (httpResponseProperty != )
                {
                    CookieContainer cookieContainer =  CookieContainer();
                    string header = httpResponseProperty.Headers[HttpResponseHeader.SetCookie];
    
                     (header != )
                    {
                        cookieContainer.SetCookies( Uri(@"http:
                    }
                     cookieContainer;
                }
                 ;
            }
    
              SetCookies(OperationContext oc, CookieContainer cookieContainer)
            {
                HttpRequestMessageProperty httpRequestProperty = ;
                 (oc.OutgoingMessageProperties.ContainsKey(HttpRequestMessageProperty.Name))
                {
                    httpRequestProperty =
                        oc.OutgoingMessageProperties[HttpRequestMessageProperty.Name]
                         HttpRequestMessageProperty;
                }
    
                 (httpRequestProperty == )
                {
                    httpRequestProperty =  HttpRequestMessageProperty();
                    oc.OutgoingMessageProperties.Add(HttpRequestMessageProperty.Name,
                        httpRequestProperty);
                }
                httpRequestProperty.Headers.Add(HttpRequestHeader.Cookie,
                    cookieContainer.GetCookieHeader( Uri(@"http:
            }
    
    
              GetUserRoles(CookieContainer cookieContainer)
            {
                RoleServiceClient roleSvc =  RoleServiceClient();
    
                 ( OperationContextScope((IContextChannel)roleSvc.InnerChannel))
                {
                    SetCookies(OperationContext.Current, cookieContainer);
                    string[] roles = roleSvc.GetRolesForCurrentUser();
                     (roles.Length == 0)
                    {
                        Console.WriteLine();
                    }
    
                    {
                        string userRoles = ;
                         ( i = 0; i < roles.Length; i++)
                        {
                            userRoles += roles[i] + ;
                        }
                        Console.WriteLine( + userRoles);
                    }
    
                }
            }
    
              GetProfileInfo(CookieContainer cookieContainer)
            {
                ProfileServiceClient profileSvc =  ProfileServiceClient();
    
                 ( OperationContextScope((IContextChannel)profileSvc.InnerChannel))
                {
                    SetCookies(OperationContext.Current, cookieContainer);
                    Dictionary<string, object> profileData =
                        profileSvc.GetPropertiesForCurrentUser(
                             string[] { , , },
                            );
    
                    Console.WriteLine( + profileData[]);
                    Console.WriteLine( + profileData[]);
                    Console.WriteLine( + profileData[]);
                }
            }
    
              Main(string[] args)
            {
                string username;
                string password;
                 result = ;
    
                Console.Write();
                username = Console.ReadLine();
    
                Console.Write();
                password = Console.ReadLine();
    
                BasicHttpBinding binding =  BasicHttpBinding();
    
                string LoginUri =
                    @"http:
    
                AuthenticationServiceClient authService =
                 AuthenticationServiceClient(binding,
                     EndpointAddress(LoginUri));
    
                CookieContainer cookieContainer;
    
                 ( OperationContextScope(authService.InnerChannel))
                {
                    result = authService.Login(username, password,
                                , );
                    cookieContainer = GetCookies(OperationContext.Current);
                }
    
                 (result)
                {
                    Console.WriteLine( + username + );
    
                    GetUserRoles(cookieContainer);
                    GetProfileInfo(cookieContainer);
                }
    
                {
                    Console.WriteLine();
                }
    
                Console.WriteLine();
                Console.Read();
            }
    
        }
    }
    

    O código permite que você insira um nome de usuário e a senha.Você deve usar os valores do Usuários e senhas que você criou anteriormente na explicação passo a passo.

  5. Feche o arquivo.

  6. Clique com o botão direito do mouse no nome do aplicativo de console e clique em Adicionar Referência.

  7. Na Adicionar Referência caixa de diálogo, clique na .NET guia, selecione System.ServiceModel e System.Tempo de execução.Serializatione em seguida, clique em OK.

    Isso adiciona espaços para nome ao projeto que incluem as classes que são necessárias para usar as classes de proxy.

Gerando Classes de Proxy e as Informações de Configuração para Serviços de Aplicativos

Você agora pode gerar informações classes e configuração de proxy que permitirão o aplicativo acessar os Serviços de Aplicativo de console de ApplicationServicesClient Aplicativo de console.Você gerou uma classe de proxy e configuração separadamente para cada serviço do aplicativo.

Para gerar classes proxy para os serviços de aplicativo

  1. No Windows linha de comando, Alterar para o diretório que contém o Ferramenta (s serviço Utilitário do modelo de metadados Ferramenta.O local padrão é o seguinte diretório:

    c:\Programa Arquivos\Microsoft SDK\Windows\< versão >\Bin
    
  2. Gera a classe de proxy de serviço de autenticação usando a ferramenta Svcutil.exe.

    Observação:

    O arquivo de configuração que você gerar deve ter o mesmo nome como arquivos .exe que você Compilação do aplicativo de console, mas com o config sufixo.Nessa explicação passo a passo, o arquivo .configuration deve ser nomeado ApplicationServicesClient.exe.config para coincidir com o nome ApplicationServicesClient que você usou para criar o aplicativo de console.O arquivo executável e o arquivo de configuração devem estar na mesma pasta.

    O exemplo a seguir mostra o comando que você usa para gerar as classes de proxy e o arquivo de configuração para a autenticação, função e serviços de perfil.Substituir o Carta da unidade apropriado para < unidade >.

    // Generating AuthenticationService proxy
    svcutil  /language: /out: /config:
    
    // Generating RoleService proxy
    svcutil  /language: /out: /config: /mergeConfig 
    
    // Generating ProfileService proxy
    svcutil  /language: /out: /config: /mergeConfig 
    
    
    
    svcutil "http:
    
    
    svcutil "http:
    
    
    svcutil "http:
    
    
    

    O nome do arquivo .svc no comando deve corresponder ao nome que você usou para criar o arquivo .svc anteriormente nessa explicação passo a passo.A classe de proxy Nome do Arquivo é arbitrário; Nesse exemplo, o proxy Nome de Classe coincide com o nome do arquivo correspondente .svc.

    O valor "LocalHost:8080" deve corresponder a URL que você usar ao executar o Web site dessa explicação passo a passo.Se você tiver usado um número da porta diferentes para o Servidor de Desenvolvimento do ASP.NET, ou se você estiver usando uma atribuição de porta dinâmica, substitua o valor apropriado.Se o número da porta for alterado, você deve atualizar o arquivo .config gerado pela ferramenta Svcutil.exe para coincidir com o novo número da porta,Isso pode se aplicar se você estiver usando atribuição dinâmica de porta e você iniciar uma nova instância da Servidor de Desenvolvimento do ASP.NET.

  3. Em Explorer soluçãoClique com o botão direito do mouse no nome do aplicativo de console, clique em AdicionarClique em Item existenteSelecione os arquivos de classe proxy três você gerado e em seguida, clique em Adicionar.

  4. Compile o projeto do aplicativo de console.

    A saída do projeto é a arquivo executável ApplicationServicesClient.exe.

  5. Adicione o arquivo ApplicationServicesClient.exe.config que é gerado para a pasta que contém o arquivo executável do aplicativo de console.

    Por padrão, a pasta é a seguinte pasta, onde < pasta > é o nome da pasta w aqui você criou o aplicativo de console.

                                  < pasta >\bin\Debug
    

Acessando os serviços de aplicativos

Agora você pode executar o aplicativo cliente e usar os serviços do aplicativo que você tenha expostos como parte do site.

Para executar o aplicativo do Windows

  1. No prompt de comando o Windows, vá para o diretório em que você armazenou o aplicativo de console e sua arquivo de configuração relacionados.(Se você usou o valor padrão, o local é < pasta >\bin\Debug.)

  2. Digite o seguinte comando:

    ApplicationServicesClient.exe

  3. Quando solicitado pelo aplicativo, digite um nome de usuário e a senha para um dos usuários que você criou anteriormente no explicação passo a passo.

    Se você inseriu as credenciais corretas, você irá ser autenticados e poderão obter as funções e informações de perfil associadas ao usuário que fez logon.

Próximas etapas

Essa explicação passo a passo tem ilustrado os princípios básicos de acessar os serviços de aplicativo ASP.NET de um aplicativo cliente que podem enviar e receber mensagens em formato SOAP.

Você pode desejar testar recursos adicionais de páginas mestras.Sugestões para exploração adicional incluem o seguinte:

Para obter informações gerais sobre os serviços da Web, convém fazer seguinte:

Consulte também

Tarefas

Como: Habilitar o serviço de autenticação do WCF

Como: Habilitar o serviço de função do WCF

Como: Habilitar o serviço de perfil do WCF

Conceitos

Visão geral sobre Serviços de Aplicativos ASP.NET