我在從開發部署到Stagging區域(與現場一樣)中部署我的WCF客戶端應用程序時出現問題。WCF X509證書身份驗證輸入Kerberos到NTLM
在我的ASP.NET應用程序。 (具有WCF客戶端)使用域用戶作爲應用程序池。這意味着,當我對X509證書進行身份驗證時,它使用Kerberos身份驗證,因爲這是Windows域帳戶。現在在錯綜複雜的環境中,我們必須使用本地計算機帳戶來訪問應用程序池。這意味着在使用X509證書進行身份驗證時,它在使用NTLM的交錯環境中。這不起作用。
任何人都可以請指點什麼是解決(或解決)這個問題的最佳方法?
由於
編輯: 例外如下:
在 System.Security.Cryptography.CryptographicException.ThrowCryptographicException(的Int32 小時)在 System.Security.Cryptography.X509Certificates.X509Utils .LoadCertFromBlob(Byte [] rawData,IntPtr password,UInt32 dwFlags,Boolean persistKeySet, SafeCertContextHandle & pCertCtx)at Syste m.Security.Cryptography.X509Certificates.X509Certificate.LoadCertificateFromBlob(字節[] RAWDATA,對象密碼,X509KeyStorageFlags keyStorageFlags)在 System.Security.Cryptography.X509Certificates.X509Certificate..ctor(字節[] RAWDATA,字符串password)在 System.Security.Cryptography.X509Certificates.X509Certificate2..ctor(字節[] RAWDATA,字符串密碼)在
注 ... CertificateManager.GetClientCertificate(typCertificateTypes CertificateType):我是證書文件從SQL數據庫獲取並不存儲在本地證書存儲區中。
該應用程序使用WCF客戶端使用X509證書與遠程服務器對話。我們沒有控制服務部分。代碼/配置之間的唯一區別是ASP.NET應用程序池帳戶。此帳戶是dev上的域用戶帳戶,但是Stagging和Prod上的本地用戶帳戶。 (我知道不要問!它不是我的選擇或決定:))
可以用你粘貼錯誤嗎? – rauts
已更新該例外的問題 – daehaai
您是否可以冒充管理員獲取證書?我們就是這樣解決的。 – albertjan