2017-08-16 126 views
0

我想通过ASP.NET MVC构建认证系统。我正在使用Identity Server 4进行身份验证。我已通过ResourceOwner实施了用户标识和密码验证。
现在我试图实现智能卡身份验证。当我尝试在调试模式下读取X509Certificate2时,我能够读取客户端证书,但是当我将应用程序部署到IIS时,我无法读取证书。
当客户端ASP.NET MVC将请求发送到Identity Server 4时,我想在IIS上托管的Identity Server上接受客户端证书。我的Identity Server 4项目类型是.NET Framework上的.NET Core。如何通过身份服务器4获取客户端证书?

我已经尝试过这样的:

  1. 授权安装SSL证书在IIS
  2. 添加HTTPS结合与有效的端口号我的身份服务器4应用程序池。
  3. 为身份服务器网站启用SSL并设置为接受客户端证书。
+0

当运行在IIS上,你有反向代理的作用,IIS和Idsrv4是它背后的红隼运行。 Https在IIS中终止,因此您无法找到连接中的证书。 – pepo

+0

我试图通过红隼获得证书,是的,我无法得到。 –

+0

当我写下面的代码,它适用于我在调试模式,但不是托管在IIS上 'X509Store store = new X509Store(StoreName.Root); store.Open(OpenFlags.ReadOnly);' 现在,如果我检查store.Certificates,我可以在调试模式下获取证书列表,但无法在IIS上获取它。 –

回答

0

我的身份服务器4下面的客户端证书,但它是没有私有密钥: var clientX509Certificate = new X509Certificate2(this.HttpContext.Connection.ClientCertificate);

相关问题