【发布时间】:2010-03-25 15:53:03
【问题描述】:
我正在查看本教程http://www.codeproject.com/KB/cpp/authforwebservices.aspx,我想知道通过soap 使用身份验证的原因是什么?比如为什么不直接通过参数传递用户名和密码呢?
像教程中的那个人那样做比只使用作为参数传递它更安全吗?
谢谢
【问题讨论】:
标签: c# .net web-services soap
我正在查看本教程http://www.codeproject.com/KB/cpp/authforwebservices.aspx,我想知道通过soap 使用身份验证的原因是什么?比如为什么不直接通过参数传递用户名和密码呢?
像教程中的那个人那样做比只使用作为参数传递它更安全吗?
谢谢
【问题讨论】:
标签: c# .net web-services soap
因为有认证基于 WS-* SOAP 的 Web 服务的标准。
WS-Security 是这里工作的罪魁祸首。
它允许从用户名/密码令牌身份验证到 X.509 身份验证。您还可以使用用户名/密码或 X.509 来加密 SOAP 消息的正文,以便您的信息更难获取。
附带说明一下,.NET 2.0 有 Web 服务扩展 (WSE) 3.0 用于此功能,因此您不必自己动手(这是您文章的作者所做的)。在 .NET 3.5 中,您将使用内置支持 WS-Security 的 WCF。
【讨论】:
嗯,不,那家伙的做法根本没有增加任何额外的安全性。然而,当使用 WS* 堆栈正确实施时,通过soap 标头进行的身份验证具有几个优点。 WS* 堆栈很大程度上基于用于签名和加密的 X.509 证书。这样做的主要优点之一是身份可以从一个服务传播到另一个服务,而无需保留用户名和密码等敏感信息。
【讨论】:
查看 SOAP 标头,可以在需要时对其进行签名和加密,并受到任何(自尊)SOAP 开发环境的支持...
【讨论】: