Bab*_*mes 4 c# authorization filter asp.net-web-api
我有一个带有重写OnAuthorization方法的全局授权过滤器.
在调试时,我看到首先实例化控制器类,然后OnAuthorization调用该方法.
这是一个已知的行为,因为我在控制器构造函数中有一些代码,如果未经授权则无需运行.
有什么方法可以解决这个问题吗?
动作过滤器在应用它们的Action之前执行.如果您有全局授权过滤器,这意味着它们是全局注册的,您不必使用这些过滤器来装饰每个操作,但这不会更改Action过滤器的行为,即在操作之前执行.
首先初始化控制器,然后调用相应的Actions,因此您的授权过滤器将在Controller的构造函数之后和操作之前执行.这是Action过滤器的行为,因为它们是这样设计的.
如果要在控制器构造之前执行授权,请尝试通过继承DelegatingHandler类为授权而不是Action过滤器创建消息处理程序.
| 归档时间: |
|
| 查看次数: |
1346 次 |
| 最近记录: |