Итак, я пытался получить доступ к услуге SOAP в среде моей компании через веб-API. net core 3.1. Когда я пытаюсь это сделать, возникает следующая ошибка:
HTTP-запрос неавторизован со схемой аутентификации клиента «Basi c». Заголовок аутентификации, полученный от сервера, был «Negotiate, NTLM»
Итак, согласно сообщению выше, я решил использовать NTLM. После этого было показано:
Операция GSSAPI завершилась неудачно с ошибкой - Неуказанный сбой GSS. Дополнительный код может предоставить дополнительную информацию (SPNE GO не может найти механизмы для согласования).
Я пробовал разные типы учетных данных клиента и режимы безопасности, но безуспешно. В нашей компании есть и другие приложения, которые отлично работают с NTLM, но все они являются фреймворком. Net, а мое -. Net core 3.1. Я попытался сравнить оба решения, ища некоторые настройки, которые могут мне помочь. Здесь тоже нет успеха.
Здесь мы видим код из этого проекта:
binding.Security.Mode = BasicHttpSecurityMode.Transport;
binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Ntlm;
var address = new EndpointAddress(_settings.Endpoint);
var factory = new ChannelFactory<IOTA2013A>(binding, address);
var credentialBehaviour = factory.Endpoint.EndpointBehaviors.OfType<ClientCredentials>().First();
credentialBehaviour.UserName.UserName = _settings.Username;
credentialBehaviour.UserName.Password = _settings.Password;
У кого-нибудь есть идеи или аналогичный опыт, которыми можно поделиться?
Спасибо в любом случае, даже если вы только что взглянули на него!