1

我需要访问我们其中一位合作伙伴的网络服务。他们的服务受到客户端证书和基本身份验证的保护。我正在使用带有 BasicHttpBinding 的 WCF。

我可以使用传输级安全性连接证书。我知道证书正在工作,因为我不再收到 403 错误,但我收到 401,因为我无法将凭据与传输一起传递。据我所知,我只能有一种传输安全方案。

我怎样才能做到这一点?

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

谢谢

4

1 回答 1

3

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

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

然后在代码中

 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";
于 2011-11-21T16:50:42.580 回答