C# 具有客户端证书和基本身份验证的WCF客户端

C# 具有客户端证书和基本身份验证的WCF客户端,c#,wcf-security,basic-authentication,basichttpbinding,client-certificates,C#,Wcf Security,Basic Authentication,Basichttpbinding,Client Certificates,我需要访问我们合作伙伴之一的web服务。 他们的服务通过客户端证书和基本身份验证进行保护。 我将WCF与BasicHttpBinding一起使用 我能够使用传输级安全性连接证书。 我知道证书正在工作,因为我不再收到403错误,但我收到401错误,因为我无法随传输一起传递凭据。 据我所见,我只能有一种交通保安计划 我怎样才能做到这一点 <security mode="Transport"> <transport type="Certificate" />

我需要访问我们合作伙伴之一的web服务。 他们的服务通过客户端证书和基本身份验证进行保护。 我将WCF与BasicHttpBinding一起使用

我能够使用传输级安全性连接证书。 我知道证书正在工作,因为我不再收到403错误,但我收到401错误,因为我无法随传输一起传递凭据。 据我所见,我只能有一种交通保安计划

我怎样才能做到这一点

<security mode="Transport">
     <transport type="Certificate" />
     <transport type="Basic" />
</security>


谢谢您是否尝试在消息级别传递凭据。 您的配置应该如下所示:

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

请显示试图访问WCF服务的客户端代码…您能否澄清服务配置。他们在使用WCF吗?如果是这样,您能否显示web.config或服务配置代码?配置是否在传输级别使用SSL(不是相互SSL)进行基本身份验证,加上使用客户端证书的消息级别加密?问题指出,他使用的是基本身份验证,因此是传输级别,而不是消息级别。
 WebServiceProxy objClient = new WebServiceProxy ();
  objclient.ClientCredentials.ClientCertificate.SetCertificate(StoreLocation.CurrentUser, StoreName.My, X509FindType.FindBySubjectName, "clientCert");
 objClient.ClientCredentials.UserName.UserName = "username";
 objClient.ClientCredentials.UserName.Password = "Password";