我正在对一个ASP.NET MVC应用程序进行故障排除,在一台服务器上,OnActionExecuting没有被触发。我已经很久没有看过滤器了。是什么原因能让OnActionExecuting不运行?在我们的应用程序中,效果是用户上下文从未真正被设置(Initialize)......所以一切都将用户重定向回登录页面。
这里是过滤器的代码。请注意 "Jupiter "是项目的代号。
public class JupiterAuthenticationFilter : IActionFilter
{
private readonly IJupiterContext _jupiterContext;
public JupiterAuthenticationFilter(IJupiterContext jupiterContext)
{
if (jupiterContext == null)
{
throw new ArgumentNullException("jupiterContext");
}
_jupiterContext = jupiterContext;
}
public void OnActionExecuting(ActionExecutingContext filterContext)
{
_jupiterContext.Initialize();
}
public void OnActionExecuted(ActionExecutedContext filterContext)
{
}
}
当你的Controller有System.Web.MVC实现,但ActionFilter有System.Web.Http。