Pre authenticate web service request in C#
Ich habe da ein problem mit dem Aufruf eines web service request in C#.
Den service und request sind in Ordnung, die in Soap-UI mit der option 'Authentifizierung Präventiv' aktiviert (Datei, Einstellungen, HTTP-Einstellungen). Ohne diese Einstellung aktiviert ist, gibt der Dienst eine " Java.Lang.NullPointerException'.
Das problem das ich habe ist, dass ich nicht weiß, wie Sie zum aktivieren dieser Einstellung in ein C# - Kontext.
Habe ich eine .NET 3.5-Klassenbibliothek enthält eine so genannte service-Referenz auf den besonderen service. Dies ist ein einfaches code-snippet;
try
{
CatalogService.CatalogChangeClient service = new CatalogService.CatalogChangeClient();
service.ClientCredentials.UserName.UserName = "fancydress";
service.ClientCredentials.UserName.Password = "47fda9cb4b51a9e";
service.ClientCredentials.SupportInteractive = true;
ProductUpdate[] products = new ProductUpdate[1];
products[0] = new ProductUpdate();
products[0].ProductCode = "00001";
products[0].ProductDescription = "TestProduct";
string result = service.UpdateProducts(products);
}
catch (Exception exception)
{
Console.WriteLine(exception.Message);
}
Update nach der ersten Antwort.
Den CatalogService.CatalogChangeClient Klasse scheint Implementierung der WCF-abstrakte Klasse
System.ServiceModel.ClientBase<TChannel>
End Update
Könnte mir jemand helfen, setzen Sie diese Eigenschaft?
- zeigen Sie bitte mehr code-insb. die Schnittstelle
CatalogService.CatalogChangeClient
implementiert - Es scheint zu sein, ein solches System umzusetzen.ServiceModel.ClientBase Klasse von WCF: public partial class CatalogChangeClient : System.ServiceModel.ClientBase<Fancydress.ResourceAccess.MCSF.CatalogService.CatalogChange>, Fancydress.ResourceAccess.MCSF.CatalogService.CatalogChange
- Von dem, was ich sammeln, ist dies ein problem in der .NET-Implementierung die Anforderung gesendet wird und nur dann, wenn es bekommt einen 401 von Dienstleistungen sendet mit Anmeldeinformationen... deine Java-WebService scheint nicht zu senden 401 - obwohl, sollten Sie zunächst bestätigen, dass ist wirklich der Fall (z.B. WireShark)... WENN es der Fall ist: um dies zu umgehen, ich vermute, Sie haben einen anderen client (proxy), die "betrogen" in senden der Anmeldeinformationen immer...
- Yahia, Sie sind vor Ort auf. Mit WireShark konnte ich bestätigen, dass das java-webservice sendet keine 401. Also ja, ich brauche einen anderen proxy, senden Sie die Anmeldeinformationen immer. Danke!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnten Sie versuchen, und setzen die
GetWebRequest
Methode aus dem generierten client-stub. Ich habe das einmal benutzt und das ist mein problem gelöst.Blick auf die folgende URL:
http://www.eggheadcafe.com/community/wcf/18/10056093/consuming-webservices-and-http-basic-authentication.aspx
Scroll ein bisschen nach unten.
Hier ist der code aus dem link:
GetWebRequest
Methode?