C# 如何读取WCF服务中的Clientcertificate?

C# 如何读取WCF服务中的Clientcertificate?,c#,wcf,client-certificates,C#,Wcf,Client Certificates,我确实在服务器上托管了WCF服务,该服务器要求客户端使用x509证书进行身份验证。我需要在服务中读取此证书,因为包含的数据是业务逻辑的一部分 我用于WCF服务的绑定是webHttpBinding,安全设置为“Transport”,clientCredentialType=“certificate” 在ASP.net中,我可以使用HttpContext.Current,但它在WCF中不可用。我可以做些什么来仍然从用户那里获得证书 亲切问候,, Alois关于的文章为我提供了这个问题的解决方案。WC

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

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

在ASP.net中,我可以使用HttpContext.Current,但它在WCF中不可用。我可以做些什么来仍然从用户那里获得证书

亲切问候,,
Alois

关于的文章为我提供了这个问题的解决方案。WCF允许在“ASP.net兼容模式”下运行,该模式返回完整的HttpContext对象。

我在禁用ASP.net兼容性的情况下,在WCF服务中使用此模式:

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