是否可以使用表单身份验证来保护Web服务?

时间:2009-02-17 05:28:32

标签: asp.net web-services forms-authentication

我们希望获得一堆ASP.Net 2.0 .asmx网络服务。将托管Web服务的表已经过身份验证。
是否可以使用表单身份验证来保护Web服务? 有什么利弊和其他可能的方法来实现这一目标。我们当然不希望在每个Web方法调用中传递用户名/密码或令牌。

4 个答案:

答案 0 :(得分:5)

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

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

另一个更安全的选择是只传递一次用户名和密码(并且具有ssl的安全性),并且发出一段在一段时间内有效的令牌。这有利于保护密码信息,并避免ssl的持续开销。

如上所述,它在很大程度上取决于您尝试保护信息的敏感程度。

答案 1 :(得分:2)

WSE已经过时了。除非你别无选择,否则不要使用它。

WCF几乎可以更好地实现WSE的所有功能。剩余的功能,那些未由WCF实现的功能本身已经过时(例如DIME)。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

您应该能够使用WSE来使用表单身份验证来保护您的服务 - 尽管我个人从未必须这样做。

以下是使用WSE的一些资源:

为了不使用WSE,您需要像其他一些预告器所暗示的那样实现类似的东西,尽管我不确定它会有多可靠: