如何在WCF服务中读取Clientcertificate?

时间:2011-03-18 17:23:02

标签: c# wcf client-certificates

我在服务器上托管WCF服务,该服务要求客户​​端使用x509证书进行身份验证。我需要在服务中读取此证书,因为包含的数据是业务逻辑的一部分。

我用于WCF服务的绑定是webHttpBinding,其安全性设置为“Transport”,clientCredentialType =“certificate”。

在ASP.net中,我可以使用HttpContext.Current,但在WCF中不可用。我还能做些什么才能从用户那里获得证书?

亲切的问候, 阿洛伊斯

2 个答案:

答案 0 :(得分:1)

关于http://blogs.msdn.com/b/wenlong/archive/2006/01/23/516041.aspx的文章为我提供了解决这个问题的方法。 WCF允许在“ASP.net兼容模式”下运行,它会带回完整的HttpContext对象。

答案 1 :(得分:1)

我在我的WCF服务中使用它,禁用了ASP.net兼容性:

var x509ClaimSet = OperationContext.Current.ServiceSecurityContext.AuthorizationContext.ClaimSets.FirstOrDefault() as X509CertificateClaimSet;