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

C# VisualStudio:无法创建SSL/TLS安全通道,c#,ssl,iis,visual-studio-2013,administrator,C#,Ssl,Iis,Visual Studio 2013,Administrator,我已经搜索了很多,但是找不到这个与问题相关的具体答案 我正在通过我的c#web应用程序访问web服务。web服务需要请求中的证书才能进行身份验证 web应用程序处于开发模式,我正在将VisualStudio 2013与iis express一起使用 我已通过MMC在本地计算机上安装了客户端证书。 在web服务请求中,我添加了X509证书。 web服务器不支持SSL,但支持TLS,因此我还要添加以下行: ServicePointManager.SecurityProtocol = Security

我已经搜索了很多,但是找不到这个与问题相关的具体答案

我正在通过我的c#web应用程序访问web服务。web服务需要请求中的证书才能进行身份验证

web应用程序处于开发模式,我正在将VisualStudio 2013与iis express一起使用

我已通过MMC在本地计算机上安装了客户端证书。 在web服务请求中,我添加了X509证书。 web服务器不支持SSL,但支持TLS,因此我还要添加以下行:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
我还要加上以下一行:

ServicePointManager.ServerCertificateValidationCallback =delegate { return true; };
问题是,如果我以普通用户的身份使用我获得的iis express运行VisualStudio

"The request was aborted: Could not create SSL/TLS secure channel."
但是,如果我以管理员身份使用iis express运行VisualStudio,则连接成功,Web服务器返回所需的响应

然后,我以.Net完全信任的方式在本地iis中托管了该应用程序,但仍然获得了:

"The request was aborted: Could not create SSL/TLS secure channel."
我的ip在web服务器上是白名单


如果有人能帮助我理解为什么VisualStudio作为管理员运行时它能工作,以及为什么它不能作为普通用户工作?

猜测一下:这可能是一个证书访问错误

您可以编辑证书的ACL:在MMC中选择证书;上下文菜单;所有任务;管理私钥


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

Dirk,这很有道理:)您的猜测让我授予MMC中的权限。还有一个问题是我没有“管理私钥”选项。然后我搜索了一下,找到了窍门。我的证书在受信任的文件夹中。我将其拖到个人文件夹中,因为“管理密钥”选项可用于个人。在那里,我添加了IUSR和Everyone以获得完全权限,并将证书拖回受信任的根目录:)它像一个符咒一样工作。听到这个消息我很高兴:-)