如何在客户端应用程序中使用Soap扩展

时间:2012-04-16 11:54:25

标签: c# .net web-services soap

我使用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'

加密正在运行。但我试过并且无法找到在客户端解密数据的方法。任何人都知道如何在客户端处理这个问题?

1 个答案:

答案 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/