2017-08-16 129 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);

相關問題