2009-02-17 76 views
7

我们正在寻求确保一堆ASP.Net 2.0 .asmx Web服务。将承载Web服务的内容已经通过了表单认证。
是否可以使用表单身份验证来保护Web服务? 什么是利弊和其他可能的方式来实现这一点。我们当然不希望在每个Web方法调用中传递用户名/密码或令牌。使用Forms Authentication可以保护Web服务吗?

回答

5

表单身份验证的事情是它为人们设计的,其中Web服务被设计为由客户端应用程序使用。虽然可以像这样进行认证,但这是错误的思维方式。

所需的安全级别显然取决于您正在使用的数据的敏感性,但我会假设它至少有点敏感(但不及银行交易)。你也许可以使用SSL并按照jle的建议传递用户名和密码,而我正在输入这个密码,或者你可能需要一个api密钥,就像flickr一样。

另一个更安全的选择是只传递一次用户名和密码(以及ssl的安全性),并给出有效期为一段时间的令牌。这具有保护密码信息的好处,并避免了ssl的不断开销。

正如前面提到的那样,它高度依赖于您要保护的信息的敏感程度。

0

这是可能的,但您需要将用户重定向到登录页面。另一个传递用户名/密码的选项是使用ssl上的Web服务。如果您加密连接,则可以使用基本身份验证没有问题。

0

你应该可以使用WSE来确保你的服务使用表单认证 - 虽然我个人从来没有这样做过。

下面是使用WSE一些资源:

要不要使用WSE你需要实现这样的事情,因为一些其他presponders已经提到,但我不确定它会有多可靠:

2

WSE已过时。除非你没有选择,否则不要使用它。

几乎WSE的所有功能都由WCF更好地实现。剩下的功能,那些没有被WCF实现的功能本身已经过时了(例如DIME)。