3

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

这个问题对我的应用程序来说非常严重。

4

1 回答 1

7

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

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

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

于 2013-05-04T10:43:45.563 回答