use*_*348 6 c# wcf wcf-security .net-3.5
我现在看到的是我的WCF服务中出现的安全错误.最初我的错误是关于一个falted状态(删除使用客户端代理来清除此错误),但通过启用跟踪找到了更多信息.
遇到此错误后,我无法让我的解决方案运行,甚至我的备份副本现在也会出现相同的错误.我不确定是什么导致了这种情况发生,我撤消了我所做的更改(与WCF无关)并仍然得到相同的错误.
跟踪错误是 - System.ServiceModel.Security.MessageSecurityException:安全处理器无法在消息中找到安全标头.这可能是因为消息是不安全的故障,或者因为通信方之间存在绑定不匹配.如果为安全性配置服务且客户端未使用安全性,则会发生这种情况.
我不确定我需要做些什么来解决这个问题,任何帮助都会有用.该应用程序以前工作.
b_l*_*itt 12
如果要避免配置自定义绑定,可以获取对当前basicHttpBinding的引用,从中创建自定义绑定,并包含EnabledUnsecuredResponse属性:
//client is a reference to your gerenated proxy client class
var elements = client.Endpoint.Binding.CreateBindingElements();
elements.Find<SecurityBindingElement>().EnableUnsecuredResponse = true;
client.Endpoint.Binding = new CustomBinding(elements);
Run Code Online (Sandbox Code Playgroud)
小智 11
尽管绑定不匹配,您可以通过设置强制WCF来工作
安全性
enableUnsecuredResponse ="true"
下面是一个代码示例,您可以使用它来与您自己的设置进行比较...
<security enableUnsecuredResponse="true"
authenticationMode="MutualCertificateDuplex"
defaultAlgorithmSuite="TripleDesRsa15"
includeTimestamp="false"
messageSecurityVersion="Default" >
<issuedTokenParameters defaultMessageSecurityVersion="Default">
<issuer address="" binding="" bindingConfiguration="">
<identity>
<certificateReference storeLocation="CurrentUser"
x509FindType="FindBySerialNumber"
findValue="0b 8d a9 18 59 65 36 b9 de 65 8b 21 ba 6c ab cc"
isChainIncluded="true" />
</identity>
</issuer>
</issuedTokenParameters>
</security>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11538 次 |
| 最近记录: |