1

我一直在关注一系列关于如何使用 MVC 4 创建 Web API的视频。第六个视频描述了授权过程,但它对于我想要的来说太复杂了,而且它以某种方式重定向到一个表单(这对我来说没有意义,但我对这个东西很陌生)。

我使用过其他站点的 API,它们通常使用以下两种方法之一:

  1. url 中的令牌(http://myurl/api/service/?token=[bunch of characters here]

  2. 标头中的用户名或密码(或令牌)

我倾向于第二种方法,因为这意味着我不必为每个方法添加参数。

如果我使用这种方法,我是否需要在每个方法的开头添加代码来检查用户名/密码的标题(request.headers?)(然后在我们的数据库中找到它们,看看他们是否有权访问这个方法) ...或者有更简单的方法吗?

4

1 回答 1

4

您可以使用派生自 AthorizationFilterAttribute 的属性标记您的 Controller 类。 http://msdn.microsoft.com/en-us/library/system.web.http.filters.authorizationfilterattribute(v=vs.108).aspx

在这种情况下,您不需要在每种方法中都编写授权检查,而只需在一个地方。这种方法在以下链接中有很好的描述:

http://www.tugberkugurlu.com/archive/api-key-authorization-through-query-string-in-asp-net-web-api-authorizationfilterattribute

于 2012-06-07T15:39:28.467 回答