我创建了一个Web服务,它有几种使用.net 3.5开发的方法。将访问Web服务的客户端将使用.net 3.0。 我被要求使这个网络服务“安全”,并在网上看到了许多选项。
首先是使用带有.net 3.5的WCF作为服务。如果我使用.net 3.5开发服务我是否还需要使用3.5来开发客户端?
其次,我可以看一下使用WSE 3.0并以这种方式实现安全性。无论如何查看.net,我都知道在使用Visual Studio 2008时使用WSE 3存在一些问题。
非常感谢任何其他建议。我想保护Web服务,因此使用WCF或WSE 3.0。
答案 0 :(得分:9)
WCF框架是.NET 3.0的一部分,而不是.NET 3.5,因此您不需要在客户端使用.NET 3.5。
使用WCF,您还可以提供基于Web服务标准的服务。这些服务甚至可以用于“旧”Web服务客户端或其他平台,如Java。
基于凭据的WCF消息安全性正在实现WS-Security 1.1标准,该标准也可以与WSE客户端一起使用。
http://msdn.microsoft.com/en-us/library/ms735093.aspx: WCF支持各种各样的 互操作性方案。该 BasicHttpBinding类的目标是 基本安全配置文件(BSP)和 WSHttpBinding类的目标是 最新的安全标准,如 WS-Security 1.1和 WS-SecureConversation的。坚持 这些标准,WCF安全可以 与Web互操作和集成 在运营中托管的服务 系统和平台以外的 Microsoft Windows。
我肯定会选择WCF解决方案,而不是WSE。我认为WCF是WSE的直接继承者,微软没有进一步改进(甚至WSE主页链接也没有从WSE 3.0下载页面中删除)。
正如Alex所说,尽管有标准,但连接到非MS平台可能具有挑战性。在这些情景中肯定需要概念证明。
答案 1 :(得分:4)
我最近在将一个WCF客户端连接到Apache Axis提供的WS- *服务时遇到了一些问题,并且必须恢复到WSE 3.0才能使其正常工作。我不知道这是WCF还是Axis的错误,但无论哪种方式,两个最高配置的WS- *堆栈都无法正常互操作也不会令人印象深刻。
鉴于仍然需要使用WSE 3.0,MS也几乎不赞成WSE 3.0也是一种耻辱: