如何在客户端应用程序中使用 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/'的结束元素'正文'"
加密正在工作。但是我尝试过,但无法找到在客户端解密数据的方法。有人知道如何在客户端中处理这个问题吗?
在您的代理客户端代码中,将"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/