C# 如何向web服务引用添加自定义安全绑定凭据?
我不熟悉服务参考资料,所以我可能需要简单的解释 我得到了一个WSDL: 我通过MVS2013在我的项目中添加了服务引用,没有任何问题 以下是自动生成的app.config文件:C# 如何向web服务引用添加自定义安全绑定凭据?,c#,wcf,soap,.net-4.0,wsdl,C#,Wcf,Soap,.net 4.0,Wsdl,我不熟悉服务参考资料,所以我可能需要简单的解释 我得到了一个WSDL: 我通过MVS2013在我的项目中添加了服务引用,没有任何问题 以下是自动生成的app.config文件: <?xml version="1.0" encoding="utf-8" ?> <configuration> <system.serviceModel> <bindings> <customBinding> &
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<bindings>
<customBinding>
<binding name="CRMServiceOrderBinding">
<textMessageEncoding messageVersion="Soap11" />
<httpsTransport />
</binding>
</customBinding>
</bindings>
<client>
<endpoint
address="https://test.servicebench.com/servicebenchv5/services/CRMServiceOrderService"
binding="customBinding"
bindingConfiguration="CRMServiceOrderBinding"
contract="ServiceBenchReference.CRMServiceOrderPortType"
name="CRMServiceOrderPort" />
</client>
</system.serviceModel>
</configuration>
但它不起作用。我通过Fiddler检查了请求,但没有看到在标题中传递的凭据
因此,我的问题是:如何才能使这3个自定义凭据信息正确地传递到标头中?(所以我得到了服务器的响应)再搜索几个小时后,我设法找到了一个合适的解决方案 感谢Thorarin的代码 在app.config文件中使用自定义绑定似乎迫使您手动添加安全元素。我不认为这是最好的方法,但它是这样工作的
CRMServiceOrderPortTypeClient ServiceOrder = new CRMServiceOrderPortTypeClient();
ServiceOrder.ClientCredentials.UserName.UserName = myUserID;
ServiceOrder.ClientCredentials.UserName.password = myPassword;