我使用c#创建一个web服务。使用本文中指定的dll加密响应
http://highcoding.blogspot.in/
WebMetod
[WebMethod]
[EncryptionExtension(Decrypt = DecryptMode.None, Encrypt = EncryptMode.Response, Target = Target.Body)]
[TracingExtension(TracingMode = TracingMode.Response, MethodName = "HelloWorld")]
public string HelloWorld() {
return "Hello World";
}
我使用c #windows应用程序创建了一个Web服务客户端。
ServiceReference1.ServiceSoapClient ob = new WindowsFormsApplication2.ServiceReference1.ServiceSoapClient();
string st = ob.HelloWorld();
这里我从命名空间'http://schemas.xmlsoap.org/soap/envelope/'预期中得到错误“End element'Fody'
加密正在运行。但我试过并且无法找到在客户端解密数据的方法。任何人都知道如何在客户端处理这个问题?
答案 0 :(得分:0)
在您的代理客户端代码中,将“EncryptionExtension”属性添加到HelloWorld方法
[EncryptionExtension(Decrypt = DecryptMode.Response, Encrypt = EncryptMode.None, Target = Target.Body)]
public string HelloWorld()
{
object[] results = this.Invoke("HelloWorld", new object[] { });
return ((string)(results[0]));
}
注意,此代理是自动生成的代码。每次对Web服务进行更改时,它都将重新生成,您的更改将丢失。
处理这种情况的最佳方法是通过配置扩展配置soap。请点击此链接了解如何操作。
http://fluentbytes.com/applying-soap-extension-client-proxy-without-altering-generated-proxy-code/