C# 如何读取WCF服务中的Clientcertificate?
我确实在服务器上托管了WCF服务,该服务器要求客户端使用x509证书进行身份验证。我需要在服务中读取此证书,因为包含的数据是业务逻辑的一部分 我用于WCF服务的绑定是webHttpBinding,安全设置为“Transport”,clientCredentialType=“certificate” 在ASP.net中,我可以使用HttpContext.Current,但它在WCF中不可用。我可以做些什么来仍然从用户那里获得证书 亲切问候,,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
Alois关于的文章为我提供了这个问题的解决方案。WCF允许在“ASP.net兼容模式”下运行,该模式返回完整的HttpContext对象。我在禁用ASP.net兼容性的情况下,在WCF服务中使用此模式:
var x509ClaimSet = OperationContext.Current.ServiceSecurityContext.AuthorizationContext.ClaimSets.FirstOrDefault() as X509CertificateClaimSet;