如何在ASMX文件中保护Web服务?

3 c# security web-services asmx

我有一些关键的数据库连接通过Web服务.asmx文件完成,可以访问,可以通过直接浏览浏览器打开如何防止某些方法,并允许一些方法访问一般未经身份验证的用户?

这个问题对我的应用来说非常严重.

Dav*_*vid 7

一种常见方法是在所有Web服务调用中使用访问令牌.场景将是这样的:

  1. 用户调用"登录"Web服务方法,传递一些凭据.(这应该是通过安全连接,如果你还没有为所有这些连接,你可能需要SSL.)
  2. "登录"Web服务方法对用户进行身份验证,生成访问令牌(Guid工作正常),存储访问令牌(可能具有令牌可用的时间窗口),并将该令牌返回给用户.响应.
  3. 所有后续Web服务方法(需要保护的所有内容)都要求提供访问令牌作为方法参数.用户在所有呼叫中传递该访问令牌.
  4. 每次调用Web服务方法时,系统都会根据已知生成的令牌验证访问令牌(如果您希望令牌过期,请考虑时间窗口,我建议),如果它不是当前有效的令牌,则拒绝请求.

如果您曾经使用过Facebook API,那么这就是需要请求时间敏感的访问令牌以便进行后续API调用的一个常见示例.