求WCF中CustomBinding的XML配置对应的C#等价实现
将WCF CustomBinding XML配置转换为C#代码实现
以下是与你提供的XML配置完全等价的C#代码实现,对应WCF中CustomBinding的手动构建逻辑:
using System.ServiceModel; using System.ServiceModel.Channels; using System.ServiceModel.Security; // 创建CustomBinding实例 CustomBinding customBinding = new CustomBinding(); customBinding.Name = "name"; // 构建并配置Security绑定元素 SecurityBindingElement securityElement = SecurityBindingElement.CreateMutualCertificateBindingElement( MessageSecurityVersion.WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10); securityElement.DefaultAlgorithmSuite = SecurityAlgorithmSuite.Default; securityElement.RequireDerivedKeys = true; securityElement.IncludeTimestamp = true; securityElement.MessageProtectionOrder = MessageProtectionOrder.EncryptBeforeSign; securityElement.RequireSignatureConfirmation = true; // 配置本地客户端与服务的重放检测设置 securityElement.LocalClientSettings.DetectReplays = true; securityElement.LocalServiceSettings.DetectReplays = true; // 将Security元素添加到绑定 customBinding.Elements.Add(securityElement); // 添加Binary消息编码元素 customBinding.Elements.Add(new BinaryMessageEncodingBindingElement()); // 添加HTTP传输元素 customBinding.Elements.Add(new HttpTransportBindingElement());
代码与XML配置的对应说明:
customBinding.Name = "name"对应XML中<binding name="name"/>的名称设置SecurityBindingElement.CreateMutualCertificateBindingElement(...)对应XML中authenticationMode="MutualCertificate"的认证模式,传入的MessageSecurityVersion参数完全匹配XML中的messageSecurityVersion属性值- 后续对
securityElement的一系列属性赋值,一一对应XML中<security>节点的defaultAlgorithmSuite、requireDerivedKeys等属性 securityElement.LocalClientSettings.DetectReplays和securityElement.LocalServiceSettings.DetectReplays对应XML中<localClientSettings>和<localServiceSettings>的detectReplays="true"配置BinaryMessageEncodingBindingElement和HttpTransportBindingElement分别对应XML中的<binaryMessageEncoding/>和<httpTransport/>节点
内容的提问来源于stack exchange,提问作者Pedro Mora
相关产品推荐
相关产品推荐

