我有一个.net mvc5项目,它使用Microsoft.AspNet.Identity进行身份验证。
我想在用户登录应用程序时检测/登录,无论是在用户有"记住我"cookie时,还是在用户手动登录时。
我已经尝试过创建一个基于IAuthenticationFilter的自定义AuthenticateFilter,但OnAuthentication和OnAuthenticationChallenge都会为每个请求触发几次。
我知道我可以在登录操作中添加代码,但我也想捕获使用cookie登录的用户。
身份代码中是否还有其他地方可以覆盖并添加日志代码?
MVC的体系结构中有一些挂钩。在Global.asax中实现其中一个:
- 受保护的void Application_AuthenticateRequest(){}
- 受保护的void Application_PostAuthenticateRequest(){}
- 受保护的void Application_AuthorizeRequest(){}
您可能可以在Cookie中间件的ValidateIdentity内部执行此操作,因为即使设置了记住我,也会调用它。