Artigo: 813834 - Última revisão: quarta-feira, 14 de Março de 2007 - Revisão: 2.5

COMO: Credenciais de transmissão actual para um serviço 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 refere o seguinte espaço de nomes biblioteca de classes do .NET Framework:
System.Net

Nesta página

Expandir tudo | Reduzir tudo

Sumário

Este artigo passo a passo descreve como passar as credenciais do utilizador actual para um XML Web service que foi criado utilizando o ASP.NET.

A propriedade DefaultCredentials da classe CredentialCache contém as credenciais de sistema do contexto de segurança actual. Para aplicações de cliente, estas credenciais representam o nome de utilizador, a palavra-passe e o domínio do utilizador com sessão iniciada actualmente. Credenciais do cliente não serão transmitidas automaticamente. Para passar o contexto de segurança do Windows do cliente para um serviço Web, tem de definir a propriedade de credenciais do proxy de serviço Web CredentialCache.DefaultCredentials .


Criar o serviço Web

  1. Inicie o Microsoft Visual Studio NET.. Crie um novo projecto de Serviço Web do ASP.NET utilizando o Visual C# .NET ou Visual Basic. NET. Por predefinição, é criado Service1.asmx.
  2. Nome do projecto MyWebService.
  3. No Solution Explorer, clique com o botão direito do rato Service1.asmx e, em seguida, clique em Código .
  4. No ficheiro Service1.asmx.cs (ou o ficheiro Service1.asmx.vb se utilizou o Visual Basic. NET), remover o comentário na padrão WebMethod HelloWorld() .
  5. No menu criar , clique em criar soluções .
  6. Escreva o seguinte URL no browser para visualizar a descrição do serviço Web Service1 :
    http://localhost/MyWebService/Service1.asmx
  7. Para testar o WebMethod HelloWorld , clique na hiperligação HelloWorld . Repare que o WebMethod funciona como previsto.

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

  1. Clique em Iniciar , aponte para definições e, em seguida, clique em Painel de controlo .
  2. No painel de controlo, faça duplo clique em Ferramentas administrativas .
  3. Faça duplo clique em Internet Information Services .
  4. Expanda Serviços de informação Internet (IIS) e, em seguida, localize o directório virtual do MyWebService .
  5. Clique com o botão direito do rato MyWebService e, em seguida, clique em Propriedades .
  6. Clique no separador Segurança de directórios . Em controlo de acesso anónimo e autenticação , clique em Editar .
  7. Na caixa de diálogo Métodos de autenticação , clique para seleccionar a caixa de verificação para a autenticação integrada do Windows .

Utilizar o serviço Web

  1. Crie uma nova Aplicação Web do ASP.NET utilizando o Visual C# .NET ou Visual Basic. NET. Nome do projecto WebServiceTest.
  2. No Solution Explorer, clique com o botão direito do rato em References e, em seguida, clique em Adicionar referência Web .
  3. Na caixa de texto endereço , escreva o seguinte URL para WebServiceTest:
    http://localhost/MyWebService/Service1.asmx
  4. Clique em Ir e clique em Add Reference .
  5. No Solution Explorer, clique com o botão direito do rato em WebForm1.aspx e, em seguida, clique em Código .
  6. Na estrutura ver do WebForm1, faça duplo clique WebForm1 para abrir o código de evento Page_Load . Altere o código de evento Page_Load da seguinte forma:

    o Visual C# .NET códigos de exemplo privada
    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ódigos 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 criar , clique em criar soluções .
  8. Escreva o seguinte URL no browser para visualizar o Service1 Descrição do serviço da Web:
    http://localhost/WebServiceTest/WebForm1.aspx
  9. Poderá receber uma mensagem de erro acesso negado. Isto ocorre porque as credenciais não são fornecidas com o pedido de serviço Web de autenticação.

Passar credenciais actuais para o serviço Web

A classe CredentialCache pertence ao espaço de nomes System.Net .
  1. Adicione a seguinte declaração de espaço de nomes na parte superior do ficheiro:

    o Visual C# .NET códigos de exemplo
    using System.Net;
    código de exemplo do Visual Basic .NET
    Imports System.Net
  2. Atribua DefaultCredentials à propriedade credenciais do proxy do lado do cliente de serviço Web. Para o fazer, altere o código do evento Page_Load da seguinte forma:

    exemplo visual C# .NET: privada
    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ódigos 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á World aparece no browser.

Referências

Para obter informações adicionais, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
811318  (http://support.microsoft.com/kb/811318/EN-US/ ) PROBLEMA: Mensagem de erro "Acesso negado" quando contactar um serviço Web durante a autenticação anónima está desactivada
Para mais informações, visite o seguinte Web site da Microsoft:
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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes 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/ )