HTTP-запрос не авторизован с помощью схемы аутентификации клиента «Basic». Заголовок аутентификации, полученный от сервера, был «Basic realm =» - PullRequest
0 голосов
/ 07 декабря 2018

Я пытаюсь получить доступ к веб-сервису Soap (HTTP), который требует аутентификации. Я использую WCF для использования сервиса.Я получаю сообщение об ошибке, поскольку HTTP-запрос не авторизован с помощью схемы аутентификации клиента «Basic».Заголовок аутентификации, полученный от сервера, был 'Basic realm = "weblogic"'.

Любая помощь приветствуется, спасибо.

Вот так выглядит мой код:

var binding = new BasicHttpBinding();               
            binding.MaxBufferSize = 2147483647;

            binding.MaxReceivedMessageSize = 2147483647;
            binding.Security = new BasicHttpSecurity
            {
                Mode = BasicHttpSecurityMode.TransportCredentialOnly,
                Transport = new HttpTransportSecurity()
                {
                    ClientCredentialType = HttpClientCredentialType.Basic
                }
            };
            var endpoint = new System.ServiceModel.EndpointAddress(configuration["webserviceAddres"]);
            servicio = new ConsultaMontosOperadosFondosClient(binding, endpoint);
            servicio.ClientCredentials.UserName.Password = MyPass;
            servicio.ClientCredentials.UserName.UserName = MyUser;

Ответы [ 2 ]

0 голосов
/ 12 декабря 2018

Включите базовую аутентификацию в модуле аутентификации IIS, а затем укажите имя пользователя / пароль.

BasicHttpBinding binding = new BasicHttpBinding();
            binding.Security.Mode = BasicHttpSecurityMode.TransportCredentialOnly;
            binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Basic;
            ServiceReference1.WebService1SoapClient client = new ServiceReference1.WebService1SoapClient(binding, new EndpointAddress("http://10.157.13.69:8001/webservice1.asmx"));
            client.ClientCredentials.UserName.UserName = "administrator";
            client.ClientCredentials.UserName.Password = "abcd1234!";

Не стесняйтесь сообщить мне, если проблема все еще существует.

0 голосов
/ 07 декабря 2018

Если служба не работает по протоколу https, попробуйте добавить область: (я не уверен, что это веб-логика или нет, просто исходя из того, что вы написали в своей ошибке)

binding.Security = new BasicHttpSecurity
{
    Mode = BasicHttpSecurityMode.TransportCredentialOnly,
    Transport = new HttpTransportSecurity()
    {
        ClientCredentialType = HttpClientCredentialType.Basic,
        Realm = "weblogic"
    }
};
...