我正在一个项目中,我需要从.NET平台向非.NET Web服务进行调用。我正在使用一些方法来进行Web服务调用,在这些方法中,我可以生成SOAP请求来访问Web服务。我使用code-projet网站中提供的代码进行了此通信。http://www.codeproject.com/Articles/376168/Csharp-Dynamic-Web-Service-Invoker。我能够正常通信,但我想使这种通信更加安全。使Web服务动态化的唯一原因是因为它可能位于不同的位置。
我的方法是在新创建的标头中添加安全令牌(某些字符串),并将该标头添加到传出SOAP请求中。在接收端(非.net平台),我将从标头中提取该值并针对某种算法进行验证,如果一切顺利,则只有它会启动其余过程。
在研究了几个站点之后,我发现所有答案都是有关添加自定义SOAP标头的,这些指向我们使用WCF或静态Web服务的方向。但事实并非如此。我刚刚编写了简单的plugin(Class)进行通信。从远程位置读取WSDL文件后生成程序集引用后,我正在调用Web服务。
我研究了大约20-30个不同的论坛来获得此问题的答案,但是没有一个答案。有人可以帮忙吗?
使Web服务动态化的唯一原因是因为它可能位于不同的位置。
您可以在运行时设置WCF客户端的终结点。当服务实现相同的合同时,它将与本机.NET很好地配合,而不是与Web中的某些(未编译或至少不完整的)代码配合使用,这很好,因为您不太可能找到对后者的支持。
让我们看一下您的实际问题:
我想使这种交流更加安全
然后从服务端开始。服务写在什么框架中,它是否以任何方式支持安全性?这实际上取决于您要如何对调用方进行身份验证,但是“添加安全令牌(某些字符串)并针对某种算法进行验证”听起来确实有点像重新发明轮子。daccess-ods.un.org daccess-ods.un.org
WCF可以与几乎所有(即使不是所有)SOAP和HTTP安全性一起使用,因此请配置您的服务,使用常规的可配置WCF客户端,并在运行时将端点设置为正确的地址。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句