Ошибка при попытке подключиться к SOAP. сервис с использованием учетных данных NTLM в решении. net core 3.1 - PullRequest
0 голосов
/ 03 августа 2020

Итак, я пытался получить доступ к услуге 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;

У кого-нибудь есть идеи или аналогичный опыт, которыми можно поделиться?

Спасибо в любом случае, даже если вы только что взглянули на него!

...