我正在使用Asp.Net Web API,遇到了以下问题:
我实现了一个自定义的授权过滤器来检查消息头,寻找API密钥。根据这个API密钥,我获取用户信息,然后想查看他是否可以访问某些资源。我要检查的资源ID在HTTP请求的参数中。但当我在AuthorizationFilter方法中时,操作参数列表是空的。
我该如何解决?
如果我使用ActionFilter来替换授权过滤器,那么我怎样才能确保这是第一个执行的过滤器?并且,我该如何指定过滤器的执行顺序?
最后一个问题,有没有可能添加一些“管道”数据,我可以在任何过滤器中检索这些数据?类似于会话存储,但仅限于请求?
谢谢您的回复。
/api/values/{id}
路由,并且我能够在AuthorizeAttribute的OnAuthorization事件中从RouteData中读取Id。 - Darrel Miller