2

如何在 MVC 应用程序中注册全局消息处理程序?

我尝试在我的 Global.asax.cs 中注册它,但是当我访问从 System.Web.Mvc.Controller 继承的所有控制器中的任何端点时,这个处理程序永远不会被调用。

但是,当我访问从 System.Web.Http.ApiController 继承的所有控制器的路由时,它确实会被调用。

这就是我放入 Global.asax.cs 的内容:

protected void Application_Start()
{
    //other initializing stuff here
    **GlobalConfiguration.Configuration.MessageHandlers.Add(new AuthenticationHandler());** 
}   
4

1 回答 1

1

我相信你正在寻找Filters. 你可以构建这样的东西:

public class MyAuthorizationFilter : IAuthorizationFilter
{
    public void OnAuthorization(AuthorizationContext filterContext)
    {
        // do your work here
    }
}

然后将其添加到全局过滤器列表中Application_Start

GlobalConfiguration.Configuration.Filters.Add(new MyAuthorizationFilter());
于 2013-04-18T19:51:57.590 回答