Asp.net mvc 在http模块中';s BeginRequest事件,如何找到当前请求是MVC的?

Asp.net mvc 在http模块中';s BeginRequest事件,如何找到当前请求是MVC的?,asp.net-mvc,httpmodule,Asp.net Mvc,Httpmodule,在http模块的BeginRequest事件中,如何发现当前请求是MVC的而不是传统的ASP.net的 你想完成什么?如果希望某些代码在特定控制器操作之前运行,或所有控制器的所有操作之前运行,则可以使用操作筛选器。这些可以使用控制器上的属性进行连接。或者,您可以使用DI和拦截等动态设置它们 我认为你在试图做一些限制你选择的事情。。。过滤器很可能是您想要的。在HttpModules application.BeginRequest事件中,我们如何发现当前请求是MVC应用程序的请求?在这两种情况下,

在http模块的BeginRequest事件中,如何发现当前请求是MVC的而不是传统的ASP.net的

你想完成什么?如果希望某些代码在特定控制器操作之前运行,或所有控制器的所有操作之前运行,则可以使用操作筛选器。这些可以使用控制器上的属性进行连接。或者,您可以使用DI和拦截等动态设置它们


我认为你在试图做一些限制你选择的事情。。。过滤器很可能是您想要的。

在HttpModules application.BeginRequest事件中,我们如何发现当前请求是MVC应用程序的请求?在这两种情况下,客户端的请求都是标准URL请求。您需要对照MVC路由检查URL,看看它是否匹配。将ASP.NET放在子目录中可能是最简单的方法,这样您就可以对请求URL进行简单的检查,如
.Contains(“example.com/aspsubdirectory”)
,这样您就知道这是针对ASP.NET站点的。这样可能:),但是如果服务器加载了许多站点,那么就有数千个用户……在这种情况下,这不是一个好的选择。这可能发生在EndRequest事件中,因为我们可以检查当前的处理程序,这将是System.Web.Mvc.MvcHandeler……。但我需要在BeginRequest中检查它,其中当前处理程序为空。不,我不想在特定控制器和操作之前执行任何代码,如果当前请求是Mvc应用程序,我想执行一些代码。祝你好运,伙计!如果您能够描述为什么要拦截MVC应用程序的请求,但不想使用MVC应用程序提供的功能(过滤器),您可能会得到更多的响应和更好的结果。