首页 > 解决方案 > HTTP 请求未经客户端身份验证方案“基本”授权。从服务器收到的身份验证标头为“基本领域 =”

问题描述

我正在尝试访问需要身份验证的 Soap Web 服务 (HTTP)。我正在使用 WCF 来使用该服务。我收到错误消息,因为 HTTP 请求未经客户端身份验证方案“基本”授权。从服务器收到的身份验证标头是“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;

标签: web-serviceswcfwcf-bindingwcf-securitytransport-security

解决方案


如果服务不是通过 https,那么尝试添加领域:(我不确定它是否是 weblogic,只是按照您在错误中发布的内容)

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

推荐阅读