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!
InformationsquelleAutor Rob Maas | 2011-08-17
Schreibe einen Kommentar