Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.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
C# 如何在WCF配置中为自定义绑定添加UsernameToken_C#_.net_Wcf_Ws Security - Fatal编程技术网

C# 如何在WCF配置中为自定义绑定添加UsernameToken

C# 如何在WCF配置中为自定义绑定添加UsernameToken,c#,.net,wcf,ws-security,C#,.net,Wcf,Ws Security,我有一个WCF客户机,它有一个自定义绑定,满足UsernameToken策略。现在我想把这个绑定外包给.config。这是我的代码绑定: AsymmetricSecurityBindingElement asymmetricBinding = SecurityBindingElement.CreateMutualCertificateDuplexBindingElement( MessageSecurityVersion.WSSecurity11WSTrustFebrua

我有一个WCF客户机,它有一个自定义绑定,满足UsernameToken策略。现在我想把这个绑定外包给.config。这是我的代码绑定:

AsymmetricSecurityBindingElement asymmetricBinding =
    SecurityBindingElement.CreateMutualCertificateDuplexBindingElement(
        MessageSecurityVersion.WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10);
asymmetricBinding.InitiatorTokenParameters = new X509SecurityTokenParameters { InclusionMode = SecurityTokenInclusionMode.AlwaysToRecipient };
asymmetricBinding.RecipientTokenParameters = new X509SecurityTokenParameters { InclusionMode = SecurityTokenInclusionMode.Never };
asymmetricBinding.EndpointSupportingTokenParameters.Signed.Add(new UserNameSecurityTokenParameters
{
    InclusionMode = SecurityTokenInclusionMode.AlwaysToRecipient
});
asymmetricBinding.DefaultAlgorithmSuite = SecurityAlgorithmSuite.Basic256;
asymmetricBinding.IncludeTimestamp = true;
asymmetricBinding.SecurityHeaderLayout = SecurityHeaderLayout.Strict;
asymmetricBinding.MessageProtectionOrder = MessageProtectionOrder.SignBeforeEncrypt;
//...

this.Elements.Add(asymmetricBinding);
this.Elements.Add(new TextMessageEncodingBindingElement(MessageVersion.Soap11, Encoding.UTF8));
this.Elements.Add(new HttpsTransportBindingElement
{
    AuthenticationScheme = AuthenticationSchemes.Basic,
    KeepAliveEnabled = false,
    AllowCookies = false
});
我在上面的代码中添加了UserNameSecurityTokenParameters以添加令牌(它使用ClientCredentials.UserName.UserName和ClientCredentials.UserName.Password)。但在WCF配置中,我没有找到任何添加此令牌的选项。到目前为止,my.config如下所示:



也许这个链接可以帮助你:谢谢你,里卡多。可能用户名令牌是通过authenticationMode=“UserNameOverTransport”隐式设置的,但我需要不对称绑定,因为我使用两个证书进行签名和加密,并且还需要时间戳。