.NET Core 3.0 WCF传递安全令牌

人气:1,032 发布:2022-10-16 标签: security wcf token channel

问题描述

我可以生成SecurityToken,但在创建频道时无法传递它。

在.NET框架4.8中我可以这样做

Var代理=factory.CreateChannelWithIssuedToken(securityToken);

但我在.Net Core中找不到替代方案,我查看了反编译的源代码,

我通过创建POCO";FederatedClientCredentialsParameters";进行了尝试,但也不起作用。

var proxy = factory.CreateChannel();
            IClientChannel clientChannel = (IClientChannel) proxy;
            clientChannel.GetProperty<ChannelParameterCollection>().Add(new FederatedClientCredentialsParameters()
            {
                IssuedSecurityToken = token
            });

我尝试过设置factory.endpoint行为,但找不到可以插入安全令牌的方法。大多数答案似乎都与用户名和密码的客户端凭据有关,但与基于WS信任的安全令牌无关。

Wcf

目前内核对推荐答案的支持非常有限。为了在core中使用WCF,core提供了以下支持WCF的包:

这些包提供的功能也非常有限。许多WCF函数不能在核心中使用。您可以在.Net框架中传递安全令牌,但核心不支持您这样做。

我的建议是使用.Net框架,您也可以考虑使用自定义绑定和自定义凭据。有关CORE对WCF的支持的更多信息,请参阅此链接:

https://github.com/dotnet/wcf/tree/master/src

如果问题仍然存在,请随时通知我。

688