在设计和学习ASP.NET Web API时,我遇到了一些挑战,我希望得到一些帮助和讨论。
受此excellent post的启发,设计了一个没有OAuth的安全REST API,我想知道如何最好地验证我打算要求的各种令牌和信息。
简要总结是我将要求(在查询字符串中)以下信息..
我的疑问/想知道是这样的:
如果这是一种合理的方法,那么使用ASP.NET Web API实现这一目标的最佳方法是什么?
我正在考虑使用我可以标记我的方法的自定义属性,从查询字符串中获取所需的Authorize属性或包含所有值的一些POCO类型对象,我可以使用将所有授权类型代码保存在一个地方。
有没有人对此有任何经验或想法?
谢谢:)
答案 0 :(得分:5)
目前,正如您可能已经看到的那样,在Web API中使用了AuthorizeAttribute
方法。我认为这是一个相当不错的方法,因为我们可以将此属性放在需要授权的单个项目上。
我通过扩展System.Web.Http.Filters.AuthorizationFilterAttribute
来完成授权。在您扩展之后,所有授权详细信息都取决于您,您有很多方法可供选择。