ASP.NET Web Api - 从查询字符串值和API安全性授权

时间:2012-02-28 21:38:43

标签: asp.net-mvc-3 asp.net-web-api

在设计和学习ASP.NET Web API时,我遇到了一些挑战,我希望得到一些帮助和讨论。

受此excellent post的启发,设计了一个没有OAuth的安全REST API,我想知道如何最好地验证我打算要求的各种令牌和信息。

简要总结是我将要求(在查询字符串中)以下信息..

  • 用户ID
  • api key
  • 时间戳
  • 基于密钥的签名哈希,用户已被发布并与请求值一起进行哈希处理

我的疑问/想知道是这样的:

如果这是一种合理的方法,那么使用ASP.NET Web API实现这一目标的最佳方法是什么?

我正在考虑使用我可以标记我的方法的自定义属性,从查询字符串中获取所需的Authorize属性或包含所有值的一些POCO类型对象,我可以使用将所有授权类型代码保存在一个地方。

有没有人对此有任何经验或想法?

谢谢:)

1 个答案:

答案 0 :(得分:5)

目前,正如您可能已经看到的那样,在Web API中使用了AuthorizeAttribute方法。我认为这是一个相当不错的方法,因为我们可以将此属性放在需要授权的单个项目上。

我通过扩展System.Web.Http.Filters.AuthorizationFilterAttribute来完成授权。在您扩展之后,所有授权详细信息都取决于您,您有很多方法可供选择。