如何解决WCF 下 SOAP 网络服务的同时客户端证书和用户名身份验证
我无法对 SOAP 网络服务进行身份验证,该服务需要使用客户端证书和用户名同时进行身份验证。
目标服务基本上支持三种认证模式:
- 用户名 + 密码——这对我很有效,使用
BasicHttpsSecurityMode.Transport
- 仅限证书 - 由于各种原因无法使用此模式
- 证书 + 用户名 —(请注意,在这种情况下没有密码,它留空)我无法使用此模式。
在每种情况下,都是使用 TLS 1.2 的 HTTPS。
事实上,我不知道如何在 WCF 中配置绑定和身份验证设置来描述这种身份验证模式。到目前为止,我尝试了各种 BasicHttpsBinding
配置和 {{1 }} 设置,包括 this answer 中描述的设置。
在下面的代码中,当同时指定了 CustomBinding
和 endpointConfig.Username
时,我根据我能够通过 google 搜索到的示例构建了一个 endpointConfig.ClientCertificate
,但它不起作用。客户端确实向服务器发送了正确的证书,服务器回复了一条更改密码规范消息,并且客户端终止了 TLS 连接。
我能得到的最远的是以下错误消息:
无法为具有“ws1c.czeBox.cz”权限的 SSL/TLS 安全通道建立信任关系。
无法为具有“ws1c.czeBox.cz”权限的 SSL/TLS 建立安全通道。
构建服务客户端的代码如下所示:
CustomBinding
请注意,我对服务器的控制为零。这是政府服务,什么都谈不上。
在 .NET 4.7.x 上运行。可以升级到 4.8,但不能升级到 .NET Core。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。