Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在.NET 5.0中使用BinarySecurityToken的C#WCF服务客户端_C#_Wcf_.net 5_Wcf Security - Fatal编程技术网

在.NET 5.0中使用BinarySecurityToken的C#WCF服务客户端

在.NET 5.0中使用BinarySecurityToken的C#WCF服务客户端,c#,wcf,.net-5,wcf-security,C#,Wcf,.net 5,Wcf Security,我有一个.NET 5应用程序需要调用WCF服务,该服务使用wsse:BinarySecurityToken头元素来携带从单独服务获得的身份验证令牌 我有一个WSDL和由此生成的客户机类 没有其他安全标头,如下所示(删除了一些标识值): 标记值在这里 我花了一些时间在谷歌上搜索这个,但是唯一一个对BinarySecurityToken的引用似乎适合用于从WSDL生成的SOAP客户端,它引用了.NET2.0 我在里面找不到任何可以添加这个的东西。 我是否只需要构建自己的头/信封,将从WSDL生成

我有一个.NET 5应用程序需要调用WCF服务,该服务使用
wsse:BinarySecurityToken
头元素来携带从单独服务获得的身份验证令牌

我有一个WSDL和由此生成的客户机类

没有其他安全标头,如下所示(删除了一些标识值):


标记值在这里
我花了一些时间在谷歌上搜索这个,但是唯一一个对BinarySecurityToken的引用似乎适合用于从WSDL生成的SOAP客户端,它引用了.NET2.0

我在里面找不到任何可以添加这个的东西。 我是否只需要构建自己的头/信封,将从WSDL生成的类序列化为XML,然后将其插入我手工构建的XML并将其发布到WCF服务?这是一个有效的解决方案,但有点令人讨厌


不幸的是,我们正在调用的服务无法更改,因为它是第三方服务。

Icky与否,这可能是您唯一的机会。@WiktorZychla我以前做过Icky,但它总是检查是否有更干净的解决方案。WCF在.NET 5中不完全受支持。WCF中有许多功能在.NET 5中不受支持。有关它的更多信息,您可以参考以下链接:
  <soap:Header>
    <wsse:Security>
      <wsse:BinarySecurityToken EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary" ValueType="Something" wsu:Id="SecurityToken-SomeGUID" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">Token value goes here</wsse:BinarySecurityToken>
    </wsse:Security>
  </soap:Header>