我在RegisterGlobalFilters()
中注册了自定义IAuthenticationFilter实施。在我的项目中,我正在目睹以下呼叫序列:
为什么在控制器操作后发生?从this blog post开始,我读了
要记住的关键是
OnAuthenticationChallenge
没有 必须在每个其他Action Filter之前运行。它可以运行 各个阶段。
如果我们无法判断它究竟何时被调用,它怎么有用?
答案 0 :(得分:8)
“只要请求失败了操作方法的身份验证或授权策略,MVC框架就会调用OnAuthenticationChallange方法。OnAuthenticationChallenge方法传递一个AuthenticationChallengeContext对象,该对象派生自ControllerContext类“
所以,一个实际的例子是:
1 - 您设置了自定义授权过滤器
2 - 用户授权方法失败
3 - OnAuthenticationChallenge方法被调用。