我在从开发部署到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