我有一个使用证书进行安全保护的Web服务。 现在,我想通过查看证书指纹来标识客户端。这意味着我在我的服务中有一个指纹列表,与某些用户相关联。
实际上,我的第一个问题(有点不相关)是:这是一个好方法还是我应该仍然引入一些用户名密码构造?
第二个问题是:我如何获取客户端用于连接到Web服务的证书,以便我可以在服务端读取指纹。
我已经阅读了很多关于此的内容(比如这篇帖子:如何在Web服务中获取客户端发送的X509Certificate?),但没有找到答案。
由于我没有HTTPContext,所以那不是一个选项。在上面提到的帖子中,提到了Context.Request.ClientCertificate.Certificate
,但我想他们也是指的HTTPContext
。此外,在web.config中添加<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
也不是一个选项。