Модули

Данное руководство устарело. Актуальное руководство: Руководство по ASP.NET Core

Последнее обновление: 31.10.2015

В ASP.NET MVC модули представляют специальные классы, реализующие интерфейс System.Web.IHttpModule. Их инициализация происходит после создания объекта приложения. С помощью модулей мы можем управлять обработкой запроса в приложении.

Фреймворк ASP.NET MVC уже использует ряд встроенных модулей для различных задач:

  • AnonymousIdentification: представлен классом System.Web.Security.AnonymousIdentificationModule. Отвечает за идентификацию запросов даже в тех случаях, когда пользователь не аутентифицирован - то есть для анонимных запросов

  • DefaultAuthentication: представлен классом System.Web.Security.DefaultAuthenticationModule. Отвечает за установку свойства User у объекта HttpContext

  • FileAuthorization: представлен классом System.Web.Security.FileAuthorizationModule, который используется при аутентификации Windows

  • FormsAuthentication: представлен классом System.Web.Security.FormsAuthenticationModule. Данный модуль используется при аутентификации форм и устанавливает значение свойства HttpContext.User, с помощью которого мы в приложении можем получить аутентифицированного пользователя

  • OutputCache: представлен классом System.Web.Caching.OutputCacheModule. Отвечает за кэширование ответа клиенту

  • PageInspectorHttpModule: этот модуль поддерживает функциональность Page Inspector, которая имеется в Visual Studio и с помощью которой осуществляется отладка HTML и CSS

  • Profile: представляет класс System.Web.Profile.ProfileModule, который связывает данные профиля пользователя с данными в запросе

  • RoleManager: представлен классом System.Web.Security.RoleManagerModule, который управляет назначением ролей

  • ScriptModule-4.0: представлен классом System.Web.Handlers.ScriptModule. Предназначен для поддержки Ajax-запросов

  • ServiceModel-4.0: представлен классом System.ServiceModel.Activation.ServiceHttpModule. Этот модуль используется веб-службами ASP.NET

  • Session: реализован классом System.Web.SessionState.SessionStateModule. Предназначен для связи данных сессии с запросами

  • UrlAuthorization: представлен классом System.Web.Security.UrlAuthorizationModule, который обеспечивает авторизованный доступ к ресурсам

  • UrlMappingsModule: представлен классом System.Web.UrlMappingsModule. Предназначен для поддержки функции URL Mappings, которая в ASP.NET MVC не применяется

  • UrlRoutingModule-4.0: реализован классом System.Web.Routing.UrlRoutingModule, который используется системой маршрутизации

  • WebPageHttpModule: данный модуль сопоставляет запросы с файлами представлений

  • WindowsAuthentication: представляет класс System.Web.Security.WindowsAuthenticationModule. Отвечает за аутентификацию Windows

В принципе мы можем сами получить список используемых модулей в своем приложении. Для этого в контроллере получим все модули через свойство HttpContext.ApplicationInstance.Modules. Допустим, у нас следующий метод получает модули и передает их в представление:

public ActionResult Modules() 
{
    var modules = HttpContext.ApplicationInstance.Modules;
    string[] modArray = modules.AllKeys;
    return View(modArray);
}

И в представлении осуществим простой вывод массива:

@model IEnumerable<string>

<ul>
    @foreach(string s in Model)
    {
        <li>@s</li>
    }
</ul>
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850