为了账号安全,请及时绑定邮箱和手机立即绑定

为什么 .net 核心不支持 TransportWithMessageCredential?

为什么 .net 核心不支持 TransportWithMessageCredential?

C#
LEATH 2022-06-19 10:25:00
我正在尝试在 .net 核心中使用 SOAP 服务我想将具有安全模式的基本 httpbinding 设置为 TransportWithMessageCredential和 clientcredentialType 作为证书但我收到一个错误在此上下文中不支持绑定安全属性“securityMode”的值“TransportWithMessageCredential”。代码看起来像这样var client = new SoapCustomClient();var binding = new BasicHttpBinding(BasicHttpSecurityMode.TransportWithMessageCredential);binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Certificate;client.ClientCredentials.ClientCertificate.Certificate = certCollection[0];我在这里犯了一些严重的错误吗?有相同的解决方案吗?[我能够在 .net 框架中实现这一点,但不能在 .net 核心中实现]
查看完整描述

2 回答

?
炎炎设计

TA贡献1808条经验 获得超4个赞

只需在添加服务引用后编辑 .csproj 文件并将这些依赖项从 4.4.* 指向 4.6.*


<ItemGroup> <PackageReference Include="System.ServiceModel.Duplex" Version="4.6.*" /> 

    <PackageReference Include="System.ServiceModel.Http" Version="4.6.*" /> 

    <PackageReference Include="System.ServiceModel.NetTcp" Version="4.6.*" /> 

    <PackageReference Include="System.ServiceModel.Security" Version="4.6.*" /> 

</ItemGroup>

并添加这个


        binding.Security.Mode = System.ServiceModel.BasicHttpSecurityMode.TransportWithMessageCredential;

        binding.Security.Message.ClientCredentialType = BasicHttpMessageCredentialType.UserName;



查看完整回答
反对 回复 2022-06-19
?
慕码人8056858

TA贡献1803条经验 获得超6个赞

这个问题在较新版本的 System.ServiceModel.* 包中得到解决(4.7.0 对我有用)。

https://github.com/dotnet/wcf/issues/4045#issuecomment-577854822


查看完整回答
反对 回复 2022-06-19
  • 2 回答
  • 0 关注
  • 117 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信