Я вызываю веб-службу через WCF (с .NET 4.0), для которой требуется базовая HTTP-аутентификация (с именем пользователя и паролем.) Через HTTPS. Хотя, я думаю, что у меня все правильно настроено, я получаю ошибку 401 всякий раз, когда я звоню в службу. Я отслеживал HTTP-трафик и заметил, что WCF, похоже, игнорирует то, что я сказал ему использовать заголовок авторизации с именем пользователя и паролем, поскольку ни один из них не отправлен в запросе. Вот моя конфигурация ниже. Есть идеи? Благодаря!Базовая HTTP-аутентификация через HTTPS с WCF
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicAuthSecured">
<security mode="Transport">
<transport clientCredentialType="Basic" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="https://REMOVED FOR CONFIDENTIALITY"
binding="basicHttpBinding" bindingConfiguration="BasicAuthSecured"
contract="Five9.WsAdmin" name="WsAdminPort" />
</client>
<behaviors>
<serviceBehaviors>
<behavior name="">
<serviceMetadata httpsGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
И вот мой код:
var five_9_client = new WsAdminClient();
five_9_client.ClientCredentials.UserName.UserName = “REMOVED FOR CONFIDENTIALITY";
five_9_client.ClientCredentials.UserName.Password = "REMOVED FOR CONFIDENTIALITY";
var call_log_response = five_9_client.getCallLogReport(call_log); //Bombing out here
Я получаю это исключение:
{ "Запрос HTTP является несанкционированным со схемой аутентификации клиента Basic 'заголовок аутентификации, полученного от. сервер был «.»}
С внутренним исключением:
{ "Удаленный сервер возвратил ошибку:. (401) Несанкционированное"}
С трассировки стека:
на System.ServiceModel.Channels.HttpChannelUtilities.ValidateAuthentication (HttpWebRequest запрос, ответ HttpWebResponse, WebException responseException, HttpChannelFactory завод) на System.ServiceModel.Channels.HttpChannelUtilities.ValidateRequestReplyResponse (HttpWebRequest запрос, HttpWebResponse ответ, HttpChannelFactory завод, WebException responseException, ChannelBinding channelBinding) на System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply (TimeSpan таймаут) в System.ServiceModel.Channels.RequestChann el.Request (сообщение сообщения, тайм-аут TimeSpan) в System.ServiceModel.Dispatcher.RequestChannelBinder.Request (сообщение сообщения, тайм-аут TimeSpan) в System.ServiceModel.Channels.ServiceChannel.Call (действие String, Boolean oneway, ProxyOperationRuntime operation, Object [] ins, Object [] аутов, тайм-аут TimeSpan) в System.ServiceModel.Channels.ServiceChannel.Call (String action, Boolean oneway, ProxyOperationRuntime operation, Object [] ins, Object [] outs) в System.ServiceModel.Channels .ServiceChannelProxy.InvokeService (IMethodCallMessage methodCall, операция ProxyOperationRuntime) на System.ServiceModel.Channels.ServiceChannelProxy.Invoke (Шеззаде сообщение)
Вы используете '' basicHttpBinding' над WSHttpBinding', потому что нужно поддерживать SOAP 1.1 клиентов? –