首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在WCF客户端中使用自定义SslStream

在WCF客户端中使用自定义SslStream
EN

Stack Overflow用户
提问于 2012-10-03 09:25:09
回答 1查看 763关注 0票数 1

我通过带有客户端身份验证的https来使用WCF服务。代码如下所示

代码语言:javascript
复制
var webHttpBinding = new WebHttpBinding(WebHttpSecurityMode.Transport);
webHttpBinding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Certificate;
var webChannelFactory = new WebChannelFactory<MyService>(webHttpBinding, serviceUri);
webChannelFactory.Credentials.ClientCertificate.Certificate = clientCertificate;
webChannelFactory.Credentials.ServiceCertificate.Authentication.CertificateValidationMode = X509CertificateValidationMode.None;

var service = webChannelFactory.CreateChannel();

service.SomeMethod();

这方面的问题是,每当我使用某些客户端证书(来自pfx文件)时,.NET SslStream都希望它的签名者和根证书存在于中。如果它们不存在,则在TLS握手期间不发送客户端证书,这将导致身份验证失败。

我认为这是SslStream的行为,是不能改变的。如果是真的,在上面的WCF客户端代码中是否有使用自定义SslStream的方法?例如,OpenSSL.NET提供了一个没有此限制的SslStream类。

提前谢谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2013-10-30 21:00:47

clientCertificate类型的X509Certificate?吗?在我的测试中,创建X509Certificate2类型的证书有助于使用证书,而无需将证书安装到Windows存储中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12705498

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档