ID do artigo: 813834 - Última revisão: quarta-feira, 14 de março de 2007 - Revisão: 2.5

COMO: Passar atual credenciais para um serviço da Web do ASP.NET

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Este artigo faz referência o namespace de biblioteca de classes .NET Framework a seguir:
System.NET

Nesta página

Expandir tudo | Recolher tudo

Sumário

Este artigo passo a passo descreve como passar as credenciais do usuário atual para um XML Web Services que foi criado usando ASP.NET.

A propriedade DefaultCredentials da classe CredentialCache contém as credenciais de sistema do contexto de segurança atual. Para aplicativos cliente, essas credenciais representam o nome de usuário, a senha e o domínio do usuário que está conectado no momento. Credenciais de cliente não são passadas automaticamente. Para passar o contexto de segurança do Windows do cliente para um serviço da Web, você deve definir a propriedade credenciais do proxy do Web service para CredentialCache.DefaultCredentials .


Criar o serviço da Web

  1. Inicie o Microsoft Visual Studio NET.. Crie um novo projeto ASP.NET Web Service usando Visual translation from VPE for Csharp .NET ou Visual Basic. NET. Por padrão, Service1.asmx é criado.
  2. Nomeie o projeto MyWebService.
  3. No Solution Explorer, clique com o botão direito do mouse em Service1.asmx e, em seguida, clique em View Code .
  4. No arquivo Service1.asmx.cs (ou o arquivo Service1.asmx.vb se você usou o Visual Basic. NET), remover o comentário no padrão WebMethod HelloWorld() .
  5. No menu Build , clique em Build Solution .
  6. Digite o seguinte URL em seu navegador para exibir a descrição do serviço Service1 da Web:
    http://localhost/MyWebService/Service1.asmx
  7. Para testar o HelloWorld WebMethod, clique no link HelloWorld . Observe que o WebMethod funciona conforme esperado.

Definir a autenticação integrada do Windows para o serviço da Web

  1. Clique em Iniciar , aponte para configurações e, em seguida, clique em Painel de controle .
  2. No painel de controle, clique duas vezes em Ferramentas administrativas .
  3. Clique duas vezes em Internet Information Services .
  4. Expanda Internet Information Services e, em seguida, localize o diretório virtual MyWebService .
  5. Clique com o botão direito do mouse MyWebService e, em seguida, clique em Propriedades .
  6. Clique na guia Segurança de diretório . Em Anonymous access and authentication control , clique em Editar .
  7. Na caixa de diálogo Métodos de autenticação , clique para selecionar a caixa de seleção para A autenticação integrada do Windows .

Usar o Web Service

  1. Crie um novo Aplicativo Web ASP.NET usando Visual translation from VPE for Csharp .NET ou Visual Basic. NET. Nomeie o projeto WebServiceTest.
  2. No Solution Explorer, clique com o botão direito do mouse em References e, em seguida, clique em Add Web Reference .
  3. Na caixa de texto endereço , digite a seguinte URL para WebServiceTest:
    http://localhost/MyWebService/Service1.asmx
  4. Clique em Ir e, em seguida, clique em Add Reference .
  5. No Solution Explorer, clique com o botão direito do mouse em WebForm1.aspx e, em seguida, clique em View Code .
  6. No Design View do WebForm1, clique duas vezes WebForm1 para abrir o código de evento Page_Load . Altere o código de evento Page_Load da seguinte maneira:

    código de exemplo do Visual translation from VPE for Csharp .NET
    private void Page_Load(object sender, System.EventArgs e)
    {
    // Start an instance of the Web Service client-side proxy.
    localhost.Service1 myProxy = new localhost.Service1();
    Response.Write( myProxy.HelloWorld());	
    }
    Código de exemplo do Visual Basic .NET
    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    
    'Start an instance of the Web Service client-side proxy.
    Dim myProxy As localhost.Service1 = New localhost.Service1()
    Response.Write(myProxy.HelloWorld())
    End Sub
  7. No menu Build , clique em Build Solution .
  8. Digite o seguinte URL no navegador para exibir o Service1 Web descrição de serviço:
    http://localhost/WebServiceTest/WebForm1.aspx
  9. Você receberá uma mensagem de erro acesso negado. Isso ocorre porque suas credenciais não são fornecidas com a solicitação de serviço da Web para autenticação.

Passar credenciais atuais para o serviço da Web

A classe CredentialCache pertence ao namespace System.NET .
  1. Adicione a declaração de namespace a seguir na parte superior do arquivo:

    código de exemplo do Visual translation from VPE for Csharp .NET
    using System.Net;
    código de exemplo do Visual Basic .NET
    Imports System.Net
  2. Atribua DefaultCredentials para a propriedade credenciais do proxy do lado do cliente serviço da Web. Para fazer isso, altere o código do evento Page_Load da seguinte maneira:

    visual translation from VPE for Csharp .NET exemplo:
    private void Page_Load(object sender, System.EventArgs e)
    {
    // Start an instance of the Web service client-side proxy.
    localhost.Service1 myProxy = new localhost.Service1();
    myProxy.Credentials = System.Net.CredentialCache.DefaultCredentials;
    Response.Write( myProxy.HelloWorld());	
    }
    Código de exemplo do Visual Basic .NET
    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    
    'Start an instance of the Web service client-side proxy.
    Dim myProxy As localhost.Service1 = New localhost.Service1()
    myProxy.Credentials = System.Net.CredentialCache.DefaultCredentials
    Response.Write(myProxy.HelloWorld())
    End Sub
    
  3. No menu Debug , clique em Iniciar . Olá mundo aparece no navegador.

Referências

Para obter informações adicionais, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
811318  (http://support.microsoft.com/kb/811318/EN-US/ ) PROBLEMA: Mensagem de erro "Acesso negado" quando você chamar um serviço Web durante a autenticação anônima está desativada
Para obter mais informações, visite o seguinte site:
http://msdn2.microsoft.com/en-us/library/aa302415.aspx (http://msdn2.microsoft.com/en-us/library/aa302415.aspx)

A informação contida neste artigo aplica-se a:
  • Microsoft Web Services (included with the .NET Framework) 1.0
  • Microsoft ASP.NET 1.0
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft ASP.NET 1.1
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2003 Standard Edition
Palavras-chave: 
kbmt kbwebservices kbwebforms kbsecurity kbauthentication kbhowtomaster KB813834 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 813834  (http://support.microsoft.com/kb/813834/en-us/ )