VisualStudio:无法创建SSL/TLS安全通道

3
我已经搜索了很多,但找不到与此特定问题相关的答案。
我正在通过我的C# Web应用程序访问Web服务。 Web服务需要请求中的证书进行身份验证。
Web应用程序处于开发模式下,我正在使用带有iis express的VisualStudio 2013。
我已经通过MMC在本地计算机上安装了客户端证书。 在Web服务请求中,我添加了X509Certificate。 Web服务器不支持SSL,而是TLS,因此我还添加了以下行:
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

我还要添加以下这行代码:
ServicePointManager.ServerCertificateValidationCallback =delegate { return true; };

问题是,如果我以普通用户身份运行VisualStudio并使用iis express,则会出现以下错误:

"The request was aborted: Could not create SSL/TLS secure channel."

但是如果我以管理员身份运行VisualStudio并使用iis express,则连接成功,并且Web服务器返回所需的响应。

然后,我将应用程序托管在我的本地iis上,使用.Net完全信任,但仍然遇到了以下问题:

"The request was aborted: Could not create SSL/TLS secure channel."

我的IP地址被加入到Web服务器的白名单中。

如果有人能帮我理解为什么在以管理员身份运行VisualStudio时可以正常工作,而以普通用户身份运行却不能工作,那就太好了。

1个回答

4

仅仅是猜测:这可能是证书访问错误。

您可以编辑证书的ACL:在MMC中选择证书;右键菜单;全部任务;管理私钥。

管理员默认在此列表中。这与您描述的行为相符。


1
Dirk,听起来很有道理:) 你的猜测让我在MMC中授予了权限。 但是又出现了另一个问题,我没有“管理私钥”选项。 然后我搜索了一下,在这里找到了诀窍。 我的证书在受信任的文件夹中。 我将其拖到个人文件夹中,因为可以在个人文件夹中使用管理密钥选项。 然后我将IUSR和Everyone添加到完全权限,并将证书拖回Trusted Root :) 它就像魔法一样工作。 - Mansoor
我很高兴听到这个 :-) - Dirk Brockhaus

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接