Asp.net mvc 3 ASP.NET Web Api-通过查询字符串值和Api安全性进行授权
在设计和学习ASP.NET Web API的过程中,我遇到了一些挑战,希望得到一些帮助和讨论 受此启发,我设计了一个没有OAuth的安全RESTAPI,我想知道如何最好地验证我想要的各种令牌和信息 简要总结是我将(在查询字符串中)询问以下信息Asp.net mvc 3 ASP.NET Web Api-通过查询字符串值和Api安全性进行授权,asp.net-mvc-3,asp.net-web-api,Asp.net Mvc 3,Asp.net Web Api,在设计和学习ASP.NET Web API的过程中,我遇到了一些挑战,希望得到一些帮助和讨论 受此启发,我设计了一个没有OAuth的安全RESTAPI,我想知道如何最好地验证我想要的各种令牌和信息 简要总结是我将(在查询字符串中)询问以下信息 用户id api密钥 时间戳 一种基于用户已获得的密钥的签名散列,并与请求值一起散列 我的问题/疑问是: 如果这是一种合理的方法,那么使用ASP.NET Web API实现这一点的最佳方法是什么 我目前正在考虑使用一个自定义属性(我可以用它来标记我的方
- 用户id
- api密钥
- 时间戳
- 一种基于用户已获得的密钥的签名散列,并与请求值一起散列
谢谢:)目前,正如您可能已经看到的,Web API中使用了
AuthorizeAttribute
方法。我认为这是一个相当好的方法,因为我们可以将此属性放在需要授权的单个项目上
我通过扩展
System.Web.Http.Filters.AuthorizationFilterAttribute
完成了授权。扩展后,所有授权详细信息都由您决定,您有很多方法可供选择。您可能可以在全局Begin_请求处理程序或全局Authenticate_请求处理程序中调用身份验证代码。确定。我的BasicAuthorizationFilterAttribute扩展System.Web.Http.Filters.AuthorizationFilterAttribute,然后覆盖OnAuthorization方法。因为OnAuthorization方法接受HttpActionContext作为其参数。此对象允许我访问请求消息并从中获取所需数据(本例中为HttpRequestHeaders.Authorization标头)。此后,必须检查该值。如果有效,则该方法返回。否则,该方法将分配actionContext.Response对象,并返回“未成功授权”响应。