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
Abrir .
Sobre o File Menu, clique em Novo Site da Web.
O Novo Site da Web caixa de diálogo é exibida.
Em Modelos Visual Studio instaladoSelecione Web Site ASP.NET.
Na Local Na lista, selecione Sistema de arquivos.
Na Folder caixa de texto, nome de site:
WcfApplicationServices
Clique em OK.
Visual Studio Cria um novo Site ASP.NET ASP.NET e abre a página Padrão.aspx.
Em Explorer soluçãoClique no nome do site.
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.
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
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.
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>
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 + ; } } }
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>
Adicionar uma página chamada ProArquivo.aspx e certifique-se de que Coloque o código no arquivo separado está selecionado.
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>
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.
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>
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
Abra o arquivo Web.config do seu site da Web.
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" / ≫
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" / >
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.
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
Clique em Novo usuário.
A página CreateUser.aspx é exibida.
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.
Na página default.aspx, clique em Login.
A página Login.aspx é exibida.
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.
Clique em Informações de perfil.
A página Profile.aspx é exibida.
Insira ou atualize as informações de perfil do usuário conectado digitando o primeiro nome, sobrenome e número de identificação.
Clique em Atualizar De perfil de dados.
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.
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
Adicionar um arquivo serviço WCF (.svc) para o site da Web e nomeie-o como AuthenticationService.svc.
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 " % ≫
< % @ ServiceHost Service="System.Web.ApplicationServices.AuthenticationService " ServiceHosting="System.Web.ApplicationServices.ApplicationServicesHostFactory " % ≫
Adicione outro arquivo serviço WCF (.svc) para o site da Web e nomine-o RoleService.svc.
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 " % ≫
< % @ ServiceHost Service="System.Web.ApplicationServices.RoleService " ServiceHosting="System.Web.ApplicationServices.ApplicationServicesHostFactory " % ≫
Adicione outro arquivo serviço WCF (.svc) para o site da Web e nomeie-o ProfileService.svc.
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 " % ≫
< % @ ServiceHost Service="System.Web.ApplicationServices.ProfileService " ServiceHosting="System.Web.ApplicationServices.ApplicationServicesHostFactory " % ≫
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
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>
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
Em Na File Menu, clique em Adicionare em seguida, clique em Novo Projeto.
Selecione seu idioma preferido e em seguida, em Modelos Visual Studio instaladoSelecione Aplicativo de Console.
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.
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.
Feche o arquivo.
Clique com o botão direito do mouse no nome do aplicativo de console e clique em Adicionar Referência.
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
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
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.
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.
Compile o projeto do aplicativo de console.
A saída do projeto é a arquivo executável ApplicationServicesClient.exe.
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
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.)
Digite o seguinte comando:
ApplicationServicesClient.exe
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:
Aprenda mais Sobre o uso dos serviços de aplicativos por .NET Framework Os clientes.Para obter mais informações, consulte Visão geral dos serviços de aplicativos do cliente.
Aprenda mais sobre o O Windows Communication Foundation (WCF) e sobre a troca de dados com o cliente em Formatarar SOAP.Para obter mais informações, consulte Infra-estrutura de serviços XML no site MSDN.
Para obter informações gerais sobre os serviços da Web, convém fazer seguinte:
Compreender o processamento que ocorre quando você faz uma chamada de serviço Web.Para obter mais informações, consulte Anatomy of an Lifetime Serviço Web XML.
Entender como usar serviços Web.Para obter mais informações, consulte XML Web Serviço Scenarios.
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