我正在与一个使用传输安全性和证书身份验证设置 WCF 服务 (WebHttpBinding) 的供应商合作。我为正常工作的供应商提供了一个类似的服务,所以我对它应该如何工作有一个基本的了解。
在 Windows 7 上运行,当我在自己的帐户下使用该服务时,一切正常,并且我得到了回复。当我在测试帐户下使用它时,我在 mscorlib 中得到一个异常,它“无法为具有 XXXX 权限的 SSL/TLS 建立安全通道”。如果我将测试帐户添加到内置管理员组,它工作正常。
服务器的证书是自签名的,主题字段设置为 CN=XXXX,我在 Personal 存储中拥有服务器证书,在 Trusted Root Certificate Authorities 存储中拥有 CA 证书。
此外,如果我尝试将 System.Net.ServicePointManager.ServerCertificateValidationCallback 设置为打印诊断并返回 true,我会得到一些有趣的行为。在我的账号下运行,回调调用了两次,然后WCF调用成功。在测试账户下运行,调用一次,返回,然后我得到上面的异常。
我最好的猜测是,这与测试帐户缺乏的某些特权有关,但我不明白 Windows 是如何处理证书的,无法确定地知道,而且我不知道从哪里开始寻找。