Я пытаюсь использовать веб-службу интрасети с WCF. Я добавил ссылку на услугу с помощью . Добавить ссылку на службу в VS2008. При этом мне было предложено ввести сетевые учетные данные для доступа к предоставленной мне услуге и добавлена ссылка на службу.Использование WCF для использования службы и получения различных ошибок в зависимости от конфигурации привязки
Я тогда написал код, который я хотел бы рассчитывать на неудачу, поскольку он не передавать учетные данные вместе с вызовом службы:
FooServiceClient proxy = new FooServiceClient();
bool isValid = proxy.ValidateBar(baz);
Когда я использую этот код, я receieve исключение:
HTTP-запрос неавторизован с помощью схемы проверки подлинности клиента «Negotiate».
Заголовок аутентификации, полученный с сервера, был «Basic realm =« Kerberos ».
Это та же ошибка, которую я получаю при использовании одного из двух примеров кода ниже.
FooServiceClient proxy = new FooServiceClient();
proxy.ClientCredentials.UserName.UserName = "USERNAME";
proxy.ClientCredentials.UserName.Password = "PASSWORD";
bool isValid = proxy.ValidateBar(baz);
или
FooServiceClient proxy = new FooServiceClient();
NetworkCredential creds = new NetworkCredential("USERNAME", "PASSWORD");
proxy.ClientCredentials.Windows.AllowedImpersonationLevel =
TokenImpersonationLevel.Identification;
proxy.ClientCredentials.Windows.AllowNtlm = false;
proxy.ClientCredentials.Windows.ClientCredential = creds;
bool isValid = proxy.ValidateBar(baz);
Моя кишка говорит мне, что у меня есть режим безопасности настроен неправильно. Согласно диспетчеру сервера, конечная точка, к которой я пытаюсь привязываться, ищет базовые учетные данные Http через SSL. Что после прочтения о WCF-BasicHttp Transport Properties привести меня к мысли, что я должен использовать эту конфигурацию:
<security mode="Transport">
<transport clientCredentialType="Windows" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
К сожалению, я продолжал получать ту же ошибку.
Опять же, я уверен, что мои проблемы связаны с проблемой конфигурации с моей стороны, поскольку я ранее использовал эту услугу в других проектах с устаревшим . Добавить веб-ссылку.
Вопрос только в том, что вы пытаетесь использовать службу WCF через SSL? Если это так, вам нужна правильная привязка к обеим точкам. –
Да, это конечная точка * https/ssl *. Я не сторонник службы, которую я пытаюсь использовать. Для чего я считаю, что он написан на Java и размещен на сервере WebLogic. – ahsteele