2011-02-09 8 views
5

Sto tentando di inviare un'intestazione di autenticazione a un servizio WSDL che non dispone di il requisito di autenticazione specificato nello WSDL.Come posso aggiungere un'intestazione di autenticazione di base al mio SOAP?

Come è possibile aggiungere l'intestazione Auth alla chiamata per il servizio Web?

Codice Ho lavorato con:

using System; 
using System.Web.Services.Protocols; 

namespace TesteSoap 
{   
    class MainClass 
    { 
     public static void Main (string[] args) 
     { 

      WSDLService Service = new WSDLService(); 
      /* How can I add authentication to the call of this webservice ? */ 
      Service.get(); 
      Console.WriteLine ("Hello World!"); 
     } 
    } 
} 
+0

Appena notato che il problema potrebbe essere che non sto richiedendo l'autorizzazione nel WSDL. Devo leggere di più su questo. –

risposta

12

Questo problema è messo in discussione in un altro link, ma in un modo diverso legato alla WSDL compresa la questione per l'utente/password.

link

non sono la stessa domanda, ma il problema è legato.

Michaelis.MockService è la libreria del servizio Web estratta. È possibile visualizzare un esempio su come eseguire questa operazione in: link Sito Web del progetto mono.

Michaelis.MockService service = new Michaelis.MockService(); 

// Create the network credentials and assign 
// them to the service credentials 
NetworkCredential netCredential = new NetworkCredential("Inigo.Montoya", "Ykmfptd"); 
Uri uri = new Uri(service.Url); 
ICredentials credentials = netCredential.GetCredential(uri, "Basic"); 
service.Credentials = credentials; 

// Be sure to set PreAuthenticate to true or else 
// authentication will not be sent. 
service.PreAuthenticate = true; 

// Make the web service call. 
service.Method();