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

问题描述:

我已经搜索了很多,但无法找到这个具体问题相关的答案。VisualStudio:无法创建SSL/TLS安全通道

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

Web应用程序处于开发模式,我使用VisualStudio 2013和iis express。

我已通过MMC在本地计算机上安装了客户端证书。 在Web服务请求中,我添加了X509Certificate。 Web服务器不支持SSL,但TLS,所以我加入以下行,以及:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; 

我也加入如下一行:

ServicePointManager.ServerCertificateValidationCallback =delegate { return true; }; 

的问题是,如果我运行在VisualStudio中与IIS普通用户表达我得到

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

但是,如果我运行的VisualStudio以管理员身份与IIS表达则连接成功并网erver返回所需的响应。

然后我主持的应用程序在我的本地IIS与.net完全信任,但还是得到了:

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

我的ip是网络服务器上的白名单。

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

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

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

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

+1

德克,这使得完美的感觉:) 你的猜测导致我授予MMC中的权限。然后还有另一个问题,我没有“管理私钥”选项。 然后我搜索了那个,我发现了这个技巧[here](http://stackoverflow.com/a/10955915/3233944)。 我的证书位于Trusted文件夹中。我将它拖到个人文件夹,因为管理密钥选项可用于个人。在那里,我添加了IUSR和Everyone来拥有完整的权限,并将证书拖回受信任的根:)它像一个魅力一样工作。 – Mansoor

+0

我很高兴听到这个:-) –

普通用户不会有像管理员足够的用户权限:有时在大多数情况下 ,

You can change normal user rights like as administrator if you want. 
+0

在这种情况下,我们在谈论什么用户权利?如果它无法像普通用户那样获取证书,那么这将是有意义的,但它确实以普通用户和管理员用户身份找到证书。 为什么不在本地IIS中工作:(? – Mansoor