繁体   English   中英

在C#中调用Web服务后清理SOAP标头

[英]Cleanup SOAP header after call webservice in C#

我在C#应用程序中注册了.webservice,该源于SoapHttpClientProtocol。 远程方法是使用Invoke()方法调用的。 一切正常。

我的问题是,我正在调用传递用户名/密码的方法,所有方法都通过SSL进行,香奈儿并不缺乏安全性,但是,在检查本地计算机嗅探到内存后,我可以看到所有SOAP标头都位于内存中调用之后的过程,因此任何使用简单工具的人都可以读取内存,我将用户名/密码发送到了webservice。

我想要的是在调用webservice的方法后释放内存。 我已经尝试过处理该类,并将该类放入“ using(){}”中,但信息仍保留在内存中。

使用Web服务后,有没有一种方法可以清理SOAP标头?

有没有一种方法可以强制清除内存或垃圾回收器?

您可以通过调用以下命令来强制进行垃圾回收:

GC.Collect()

当然,您通常不应该这样做。 可能不会清除内存的特定部分。 另外,如果您尝试强制收集,则需要检查每个收集通道的结果,看看是否应该再次调用它。

但是不要。 如果某人足够明亮以检查内存,则他们可能足够明亮以在其所在的短窗口中找到凭据。

是否提供了用户名密码用户? 如果是这样-在那里获取凭据很容易。

更新:我想到了另一种想法...您可以用一种对内存有更明确控制的语言(例如C ++)来实现服务调用。 然后,您可以进行调用,并显式地覆盖具有凭据的内存。 Web服务调用部分在套接字中非常容易实现,但是SSL部分并不简单。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM