我正在尝试在每个用户的配置文件上维护一个“Last Active”DateTime字段 - 最初我打算将此检查绑定到某个Index()控制器,但用户可能并不总是调用该控制器,所以我需要全局的东西。
动作过滤器似乎最高适用于Controller级别,所以现在我想知道Global.asax中的某些魔法可能会起作用。这似乎是一个常见的问题,但我无法在Google或SO上提起任何问题 - 如果它是重复的话,我会道歉。
答案 0 :(得分:2)
“用户可能并不总是呼叫控制器”是什么意思?如果您有一个mvc Web应用程序,那么用户交互将始终在控制器上执行操作。
但是,我建议使用 HTTP 模块。每次调用都会运行 HTTP 模块类,我认为这对您的问题来说是更好的选择。 http://support.microsoft.com/kb/307996可能是一个很好的参考,或者只是google它,你会发现很多结果可以帮助你实现它。
修改强>:
如果您已经实施了过滤器,则可以将其简单地添加到所有操作,只需将以下代码添加到 global.asax (applicaton_start()
方法)
var myfilter = new MyFilter();
GlobalConfiguration.Configuration.Filters.Add(myfilter);