Я хотел бы установить https-соединение WCF между основным приложением .NET и полноценным веб-сервисом .NET (размещенным в IIS) с базовой аутентификацией.
На стороне .NET Core у меня настроена ChannelFactory следующим образом:
var binding = new BasicHttpBinding();
binding.Security.Mode = BasicHttpSecurityMode.Transport;
binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Basic;
factory = new ChannelFactory<T>(binding, new EndpointAddress(endpointAddress));
factory.Credentials.UserName.UserName = "abc";
factory.Credentials.UserName.Password = "xyz";
В веб-сервисе у меня есть конечная точка, использующая привязку, настроенную следующим образом:
<basicHttpBinding>
<binding name="BasicHttpBinding" maxReceivedMessageSize="10485760">
<security mode="Transport">
<transport clientCredentialType="Basic" proxyCredentialType="None" realm=""/>
</security>
</binding>
</basicHttpBinding>
Но во время выполнения я получаю это сообщение об ошибке:
System.ServiceModel.Security.MessageSecurityException: 'Запрос HTTP неавторизован со схемой аутентификации клиента "Базовая". Заголовок аутентификации, полученный от сервера, был «Basic realm = «localhost»».
Я ожидал, что обе стороны скажут схема аутентификации «Базовая» и подключатся без проблем. Я не знаю, откуда берется царство, но я не могу избавиться от него. Я думаю, что это вызывает проблему.