首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“身份验证失败,因为远程方关闭了正常用户的传输流”

“身份验证失败,因为远程方关闭了正常用户的传输流”
EN

Stack Overflow用户
提问于 2017-02-09 19:25:25
回答 2查看 12.8K关注 0票数 1

第三方供应商正在添加身份验证(yay!),但它并不总是适用于我们(boo!)。

当C#应用程序以“管理员身份”运行时,它可以很好地工作。但是,当应用程序以正常(非管理员)用户的身份运行时,它会在消息中失败。

“身份验证失败,因为远程方已关闭传输流”

我们显式地设置为TLS 1.2

代码语言:javascript
复制
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

我们是

  • 执行4.6个.NET C# WCF客户端
  • ,它使用HTTPS web服务。
  • 使用TLS1.2
  • 在Windows 2012平台上
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-02-09 21:59:09

我们也在Getting "Could not establish secure channel for SSL/TLS with authority" even though ServerCertificateValidationCallback returns truewinhttpcertcfg giving access to IIS user in Windows 7的帮助下解决了这个问题。

问题是,证书是为“计算机”帐户的受信任人安装的。当在Admin模式下运行时,或者作为一个拥有管理权限的用户,它工作得很好。但是,当作为我们的“服务帐户”运行时(因为它不是真正的服务帐户) --服务帐户没有读取证书的权限。

我们发现,深入挖掘C:\ProgramData\Microsoft\crypto\rsa\machinekeys目录并更改适当的证书的读取权限是有效的。

我们不喜欢使用icacls更改已安装证书的读取权限的建议解决方案(部分原因是实际找到正确的证书条目的艰巨任务)。

我们发现可以将mmc.exe作为服务帐户运行,然后将其安装到该帐户的可信人员级别。然后,我们的非管理应用程序可以读取证书并建立连接。

票数 5
EN

Stack Overflow用户

发布于 2018-05-24 14:16:07

这可能与OPs最初的问题不同,但我的问题是,我的IIS应用程序使用了Windows 模拟,因此它试图与没有权限这样做的模拟用户一起访问C:\ProgramData\Microsoft\crypto\rsa\machinekeys中的cert文件。

我改变了设计来关闭模拟,这个问题就不复存在了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42145212

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档