我正在尝试使用ProtectionLevel属性在WCF Web服务上设置安全性:
[ServiceContract(ProtectionLevel= ProtectionLevel.EncryptAndSign)]
Run Code Online (Sandbox Code Playgroud)
这会编译,但当我尝试更新另一个项目(同一解决方案)中的服务引用时,Visual Studio会抛出异常.
System.InvalidOperationException:必须保护请求消息.这是合同操作所必需的('IStorageService','tempuri.org/';).保护必须由绑定提供('WSHttpBinding','tempuri.org/';).
我还需要设置什么来实现这一目标?
您的ServiceContract属性指定服务需要所有操作的安全通道,同时具有消息签名(消息包含可以证明其未被篡改的数字签名)和消息加密(消息的字节已加密)当通过网络传输时).
您的客户端代码(即在调用服务的项目中)必须满足这些要求.如果此项目使用BasicHttpBinding和默认设置,则不会满足服务的要求(默认情况下,BasicHttpBinding禁用安全性).如果您配置使用的WSHttpBinding相反,使用其默认设置客户端项目中,除应走(这已结合EncryptAndSign默认启用).
归档时间: |
|
查看次数: |
2451 次 |
最近记录: |