2015-07-08 7 views
1

У меня есть HttpModule для шифрования URL; Я заметил, что этот модуль также перехватывает запросы пакета MVC; даже если я использую следующие настройки:Обход запросов ASP MVC с модуля MVC

<modules runAllManagedModulesForAllRequests="false"> 
<add ..preCondition="managedHandler" /> 
</modules> 

Есть ли способ обойти перехват запросов пачки MVC от HttpModule?

ответ

1

так за игнорирование определенного маршрута в HttpModule вы можете использовать Application_BeginRequest или Application_EndRequest, делать, как показано ниже в примере, который игнорирует ASPX страницы или проверить путь, который вы хотите игнорировать

Пример:

private void Application_BeginRequest(Object source, EventArgs e) 
    { 
     HttpApplication application = (HttpApplication)source; 
     HttpContext context = application.Context; 
     string filePath = context.Request.FilePath; 
     string fileExtension = VirtualPathUtility.GetExtension(filePath); 
     if (fileExtension.Equals(".aspx")) 
     { 
      return; 
     } 
    } 

Но если ваша функциональность связана с некоторыми модулями приложения, я предлагаю использовать Filters (MVC sepcific и для модулей), а не HttpModules (для полного применения).

+0

Расширение регулярных действий MVC не будет, и я не смогу различать запросы пакетов и запрос на действие MVC. – user4903642

+0

@ user4903642 - по крайней мере, вы можете проверить маршрут ... потому что я предполагаю, что маршрут отличается в mvc для получения данных –