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

本文关键字:Soap 扩展 应用程序 客户端 | 更新日期: 2023-09-27 18:31:11

我用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/'的结束元素'正文'"

加密正在工作。但是我尝试过,但无法找到在客户端解密数据的方法。有人知道如何在客户端中处理这个问题吗?

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

在您的代理客户端代码中,将"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/