Базовая проверка подлинности WCF между Full .NET и .NET Core

Я хотел бы установить 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»».

Я ожидал, что обе стороны скажут схема аутентификации «Базовая» и подключатся без проблем. Я не знаю, откуда берется царство, но я не могу избавиться от него. Я думаю, что это вызывает проблему.


person PeterVD    schedule 22.08.2018    source источник
comment
Убедитесь, что ваш пароль правильный, эта проблема может возникнуть, если есть проблема с учетными данными.   -  person tobypls    schedule 22.08.2018
comment
Похоже, я даже не дошел до этого. Пользовательский UsernamePasswordValidator на стороне сервера не вызывается.   -  person PeterVD    schedule 23.08.2018
comment
Проверьте этот ответ stackoverflow.com/a/52696777/5077196   -  person Yahya Hussein    schedule 08.10.2018