未经授权使用客户端身份验证方案'Anonymous'和URI方案'https'无效;预期'http'



我在消费肥皂网时会出现此错误。我在谷歌搜索时尝试了许多建议,例如:

<security mode="Transport">
       <transport clientCredentialType="Certificate" proxyCredentialType="None" realm="weblogic" />
      <message clientCredentialType="UserName" algorithmSuite="Default" />
      </security>
<security mode="Transport">
       <transport clientCredentialType="None" proxyCredentialType="None" realm="" />
      <message clientCredentialType="UserName" algorithmSuite="Default" />
      </security>
   <security mode="TransportCredentialOnly">
       <transport clientCredentialType="None" proxyCredentialType="None" realm="" />
      <message clientCredentialType="UserName" algorithmSuite="Default" />
      </security>

Web服务端点是https的,这是我的C#代码:

BasicHttpBinding basicHttpBinding = new BasicHttpBinding();
            basicHttpBinding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Certificate;
            basicHttpBinding.Security.Mode = BasicHttpSecurityMode.Transport;
            CustomerPortTypeClient client = new CustomerPortTypeClient(basicHttpBinding,
                new EndpointAddress("https:......."));
            client.ClientCredentials.UserName.UserName = ConfigurationManager.AppSettings["username"].ToString();
            client.ClientCredentials.UserName.Password = ConfigurationManager.AppSettings["userpwd"].ToString();
            client.ClientCredentials.ClientCertificate.Certificate = new X509Certificate2(ConfigurationManager.AppSettings["servercertfilepath"].ToString());

当我评论行basicHttpBinding.Security.Mode =BasicHttpSecurityMode.Transport;时,返回消息会更改,我得到:détails:提供的URI方案" HTTPS"无效;预期的" HTTP"。参数名称:via。

任何建议或建议将不胜感激。

对于那些遇到相同问题的人。这是使用的代码通过:

BasicHttpBinding basicHttpBinding = new BasicHttpBinding();
            basicHttpBinding.Security.Mode = BasicHttpSecurityMode.Transport;
            basicHttpBinding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Basic;
            basicHttpBinding.Security.Transport.ProxyCredentialType = HttpProxyCredentialType.None;
            basicHttpBinding.Security.Transport.Realm = "weblogic";
            basicHttpBinding.Security.Message.ClientCredentialType = BasicHttpMessageCredentialType.Certificate;
            CustomerPortTypeClient client = new CustomerPortTypeClient(basicHttpBinding,
                new EndpointAddress("https:....."));
            client.ClientCredentials.ClientCertificate.Certificate = new X509Certificate2(ConfigurationManager.AppSettings["servercertfilepath"].ToString());
            client.ClientCredentials.UserName.UserName = ConfigurationManager.AppSettings["username"].ToString();
            client.ClientCredentials.UserName.Password = ConfigurationManager.AppSettings["userpwd"].ToString();

相关内容

最新更新