Dostałem usługę internetową napisaną w języku Java, której nie mogę wprowadzić. Wymaga uwierzytelnienia użytkownika z podstawowym uwierzytelnieniem, aby uzyskać dostęp do dowolnej z metod. Sugerowanym sposobem interakcji z tą usługą w .NET jest użycie Visual Studio 2005 z zainstalowaną wersją WSE 3.0.Nie można wywołać usługi internetowej z podstawowym uwierzytelnianiem za pomocą WCF
To jest problem, ponieważ projekt już korzysta z Visual Studio 2008 (targetowanie .NET 2.0). Mógłbym to zrobić w VS2005, ale nie chcę powiązać projektu z VS2005 lub zrobić go, tworząc zestaw w VS2005 i włączając to w rozwiązanie VS2008 (które zasadniczo wiąże projekt z 2005 r. Mimo wszelkich przyszłych zmian w zespole). Myślę, że każda z tych opcji skomplikowałaby sytuację nowych deweloperów, zmuszając ich do zainstalowania programu GPW 3.0 i uniemożliwiania projektu użycia 2008 i funkcji w .NET 3.5 w przyszłości ... tj. Naprawdę wierzę w używanie WCF jest drogą do zrobienia.
Szukałem przy użyciu WCF do tego, jednak nie jestem pewien, jak uzyskać usługi WCF, aby zrozumieć, że musi wysyłać nagłówki uwierzytelniania wraz z każdym żądaniem. Otrzymuję 401 błędów, gdy próbuję zrobić cokolwiek z usługą sieciową.
To właśnie mój kod wygląda następująco:
WebHttpBinding webBinding = new WebHttpBinding();
ChannelFactory<MyService> factory =
new ChannelFactory<MyService>(webBinding, new EndpointAddress("http://127.0.0.1:80/Service/Service/"));
factory.Endpoint.Behaviors.Add(new WebHttpBehavior());
factory.Credentials.UserName.UserName = "username";
factory.Credentials.UserName.Password = "password";
MyService proxy = factory.CreateChannel();
proxy.postSubmission(_postSubmission);
to będzie działać i rzucać następujący wyjątek:
The HTTP request is unauthorized with client authentication scheme 'Anonymous'. The authentication header received from the server was 'Basic realm=realm'.
I to ma wewnętrzną wyjątkiem:
The remote server returned an error: (401) Unauthorized.
Wszelkie przemyślenia na temat tego, co może być przyczyną tego problemu, byłyby bardzo mile widziane.
Marca, Czy możesz mi pokazać jak kodować i config jeśli jest REST na podstawie usługi Java? – rajibdotnet
Właściwość ClientCredentials nie pojawia się dla mnie po wpisaniu proxy. – rajibdotnet
@rajibdotnet: Cóż, kod w pytaniu to w zasadzie to, co musisz nazwać usługą opartą na REST .... jeśli to nie pomaga: proszę ** zadaj własne pytanie **, aby ludzie mogli odpowiedzieć ... –