【发布时间】:2011-11-10 13:09:57
【问题描述】:
我在将我的 WCF 客户端应用程序从 Dev 部署到 Staging 区域(与实时区域相同)时遇到问题。
在我的 ASP.NET 应用程序上。 (具有 WCF 客户端)将域用户用于应用程序池。这意味着当我验证我的 X509 证书时,它使用 Kerberos 验证,因为 Windows 域帐户。现在在临时环境中,我们必须使用本地计算机帐户作为应用程序池。这意味着它在使用 X509 证书进行身份验证时使用 NTLM 的临时环境。这不起作用。
任何人都可以了解解决(或绕过)这个问题的最佳方法吗?
谢谢
编辑: 例外情况如下:
在 System.Security.Cryptography.CryptographicException.ThrowCryptographicException(Int32 小时)在 System.Security.Cryptography.X509Certificates.X509Utils._LoadCertFromBlob(字节[] rawData, IntPtr 密码, UInt32 dwFlags, Boolean persistKeySet, SafeCertContextHandle & pCertCtx) 在 System.Security.Cryptography.X509Certificates.X509Certificate.LoadCertificateFromBlob(字节[] rawData,对象密码,X509KeyStorageFlags keyStorageFlags)在 System.Security.Cryptography.X509Certificates.X509Certificate..ctor(字节 [] rawData,字符串密码)在 System.Security.Cryptography.X509Certificates.X509Certificate2..ctor(字节 [] rawData,字符串密码)在 ...CertificateManager.GetClientCertificate(typCertificateTypes 证书类型)在
注意:我获取的证书文件来自 SQL 数据库,而不是存储在本地证书存储中。
应用程序正在使用 WCF 客户端与使用 X509 证书的远程服务器通信。我们无法控制服务部分。代码/配置之间的唯一区别是 ASP.NET 应用程序池帐户。此帐户是 dev 上的域用户帐户,但 Staging 和 Prod 上的本地用户帐户。 (我知道不要问!这不是我的选择或决定:))
【问题讨论】:
-
你能粘贴你得到的错误吗?
-
已更新异常问题
-
你能冒充管理员获取证书吗?我们就是这样解决的。
-
感谢 the_ajp。您能否详细说明一下或将我引向示例/文章.thx
标签: wcf x509certificate kerberos ntlm