我正在尝试在每个用户的配置文件上维护一个“上次活动”日期时间字段 - 最初我打算将此检查绑定到某个 Index() 控制器,但用户可能并不总是调用该控制器,所以我需要一些全局的东西。
动作过滤器似乎适用于最高级别的控制器,所以现在我想知道 Global.asax 中的一些魔法是否可以解决问题。这似乎是一个很常见的问题,但我无法在 Google 或 SO 上找到任何东西——如果是重复的话,我深表歉意。
我正在尝试在每个用户的配置文件上维护一个“上次活动”日期时间字段 - 最初我打算将此检查绑定到某个 Index() 控制器,但用户可能并不总是调用该控制器,所以我需要一些全局的东西。
动作过滤器似乎适用于最高级别的控制器,所以现在我想知道 Global.asax 中的一些魔法是否可以解决问题。这似乎是一个很常见的问题,但我无法在 Google 或 SO 上找到任何东西——如果是重复的话,我深表歉意。
“用户可能并不总是调用控制器”是什么意思?如果您有一个 mvc Web 应用程序,那么用户交互将始终通过控制器上的操作进行。
但是,我建议使用HTTP模块。每次调用都会运行一个HTTP模块类,我认为这将是解决您问题的更好选择。http://support.microsoft.com/kb/307996可能是一个很好的参考,或者只是谷歌它,你会发现很多结果可以帮助你实现它。
编辑:
如果您已经实现了一个过滤器,您可以将其应用于所有操作,只需将下面的类似代码添加到您的global.asax (applicaton_start()
方法)
var myfilter = new MyFilter();
GlobalConfiguration.Configuration.Filters.Add(myfilter);