Использование AuthConfig, BundleConfig, FilterConfig, RouteConfig и WebApiConfig в папке app Start() в MVC
можете ли вы подробно объяснить использование папки App_Start () в MVC4? Я вижу, что эта папка на самом деле недоступна в предыдущих версиях MVC. В этой папке 5 файлов.
- AuthConfig
- BundleConfig,
- FilterConfig,
- RouteConfig,
- WebApiConfig.
спасибо заранее.
6 ответов
App_Start
- Это еще одна папка, которая группируется вместе ASP.NET конфигурация MVC, которая в предыдущих версиях ASP.NET MVC был сделан в Global.asax
.
ASP.NET MVC вводит все больше и больше элементов конфигурации, и эта папка идеально подходит для размещения этой конфигурации. Например, новая аутентификация MVC 5. конфигурация, например для сторонних поставщиков входа в систему, также помещается в эту папку (в Startup.Auth.cs
).
App_Start
Это не ASP.NET специальный папка распознано ASP.NET/IIS - ... Вы можете переименовать папку, если хотите. Название просто условность, как App_GlobalResouces
etc.
обновление:
ниже приведены некоторые сведения и ориентиры для каждого файла. Использование этих файлов довольно просто. Я включил несколько онлайн-ссылок, которые могут помочь вам понять больше.
AuthConfig
- Регистрация внешних поставщиков аутентификации. См ASP.NET в MVC внешние поставщики проверки подлинности для получения дополнительной информации.BundleConfig
- регистрирует ваши CSS и JS, чтобы их можно было связать и минимизировать. См. такжеASP.NET MVC: руководство: связывание и минимизация.WebApiConfig
- применимо, только если вы используете Web API. Это может использоваться, чтобы настроить веб-API-конкретные маршруты, любые настройки веб-API и веб-сервисы API. См. также настройка ASP.NET MVC Web API 2FilterConfig
- зарегистрированы глобальные фильтры. Эти фильтры применяются ко всем действиям и контроллеры. См. такжеASP.NET MVC 3: глобальные фильтры действийRouteConfig
- вы уже нашли информацию.
папка App_start была введена в Mvc4. Он содержит различные конфигурационные файлы, такие как:
- BundleConnfig.cs
- FilterConfig.cs
- RouteConfig.cs
- WebApiConfig.cs
- AuthConfig.cs
App_start не является специальной папкой в MVC, ни файлы классов внутри этого, это просто обычные файлы классов с другим приложением конфигурации (фильтровать, связывать, направлять etc.) и все эти настройки регистрируются в рамках метода Application_Start Global.асакс.cs файл.
BundleConfig.cs:
это используется для создания и регистрации пакетов для CSS и js-файлов. для например. jQuery, jQueryUI, проверка jQuery, модернизация и CSS сайта..
объединения и минификации два способа улучшить время загрузки уменьшение количества запросов к серверу и уменьшение размера запрошенные ресурсы (такие как CSS и JavaScript.) Microsoft предоставляет сборку Microsoft.Сеть.Оптимизация для того же
например. Давайте создадим два пакета. один для стиля (css), а другой для скрипта(javascript)
вы можете создать пакет для css и javascripts соответственно, вызвав
Bundlecollection класс Add () метод в BundleConfig.cs файл.
шаг 1:
Создание Bundle Стиль
bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.min.css", "~/Content/mystyle.min.css"));
Создание Пакета Скриптов
bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include( "~/Scripts/jquery-1.7.1.min.js", "~/Scripts/jquery.validate.min.js"));
Шаг 2:
вышеуказанные пакеты определены в классе BundleConfig как:
public class BundleConfig { public static void RegisterBundles(BundleCollection bundles) { //Adding StyleBundle to BundleCollection bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.min.css", "~/Content/mystyle.min.css")); //Adding ScriptBundle to BundleCollection bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include( "~/Scripts/jquery-1.7.1.min.js", "~/Scripts/jquery.validate.min.js")); } }
Шаг 3:
Регистрация Пакета
все пакеты зарегистрированы в Событие Application_Start глобального.асакс:
protected void Application_Start() { BundleConfig.RegisterBundles(BundleTable.Bundles); }
минификации - это метод удаления ненужных символов (например, пробел, новая строка, вкладка) и комментарии из JavaScript и CSS файлы для уменьшения размера, в свою очередь, улучшают время загрузки веб-страницы. для например. jquery-1.7.1.минута.js-это уменьшенный файл js для jquery-1.7.1, главным образом использованный для производственной среды, для non-prod вы можете более лучше использовать non- minified js, чтобы иметь лучше удобочитаемость.
например.
функция Jquery в несжатом js может выглядеть примерно так:
( function( global, factory ) {
"use strict";
if ( typeof module === "object" && typeof module.exports === "object" ) {
// For CommonJS and CommonJS-like environments where a proper `window`
// is present, execute the factory and get jQuery.
// For environments that do not have a `window` with a `document`
// (such as Node.js), expose a factory as module.exports.
// This accentuates the need for the creation of a real `window`.
// e.g. var jQuery = require("jquery")(window);
// See ticket #14549 for more info.
module.exports = global.document ?
factory( global, true ) :
function( w ) {
if ( !w.document ) {
throw new Error( "jQuery requires a window with a document" );
}
return factory( w );
};
} else {
factory( global );
}
такая же функция выше в сжатом или уменьшенном js будет выглядеть так:
!function(a,b){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)
}
FilterConfig.cs:
это используется для создания и регистрации глобального фильтра MVC:
например.
- фильтры аутентификации (Исполняется Впервые)
- фильтры авторизации
- фильтры действий
- фильтры результатом
- фильтры исключений (Ожидаемым Последнего)
Примечание: как уже упоминалось выше фильтры выполняются в порядке.
например. Фильтры аутентификации, введенные с MVC5:
public interface IAuthenticationFilter { void OnAuthentication(AuthenticationContext filterContext); void OnAuthenticationChallenge(AuthenticationChallengeContext filterContext); }
вы можете создайте атрибут фильтра CustomAuthentication, реализовав
IAuthenticationFilter, как показано ниже -
public class CustomAuthenticationAttribute : ActionFilterAttribute, IAuthenticationFilter
{
public void OnAuthentication(AuthenticationContext filterContext)
{
//logic goes here
}
выполняется после метода OnAuthentication
public void OnAuthenticationChallenge(AuthenticationChallengeContext
filterContext)
{
{
//logic goes here
}
}
Настройка Фильтров
вы можете настроить свой собственный фильтр в приложении на следующие три уровня:
глобальном уровне
путем регистрации фильтра в событие Application_Start Глобальный.асакс.cs файл:
protected void Application_Start() { FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); }
уровень контроллер
поставив фильтр в верхней части имени контроллера:
[Authorize(Roles="Admin")] public class AdminController : Controller { // Logic goes here }
уровне
поставив фильтр в верхней части имени действия:
public class UserController : Controller { [Authorize(Users="User1,User2")] public ActionResult LinkLogin(string provider) { // Logic goes here return View(); } }
RouteConfig.cs:
это используется для регистрации различных шаблонов маршрутов для вашего Asp.Net MVC
приложение. Маршрутизация играет важную роль в ASP.NET приложение MVC поток выполнения, он сопоставляет URL-адрес запроса с определенным действием контроллера, используя таблица маршрутизации. Мы можем определить правила маршрутизации для движка, чтобы он мог сопоставлять > входящие URL-адреса соответствующему контроллеру. Маршрутизации использует правила маршрутизации которые определены в Global.файл asax для анализа URL-адреса и выяснения путь соответствующий контроллер. Мы можем найти следующий фрагмент кода > в методе Application_Start () Global.файл asax.
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
мы можем найти RouteConfig.cs-файл в папке App_Start. Если следовать этот метод в классе RouteConfig мы найдем один настроенный по умолчанию маршрут следующий. В строке 3-7 настраивается один маршрут по умолчанию.
public static void RegisterRoutes(RouteCollection routes) { 1. routes.IgnoreRoute(“{resource}.axd/{*pathInfo}”); 2. 3. routes.MapRoute( 4. name: “Default”, 5. url: “{controller}/{action}/{id}”, 6. defaults: new { controller = “Home”, action = “Index”, id = UrlParameter.Optional } 7. ); }
строка 4 : название маршрута. Строка 5: представлять URL: Controller, последующим действиям id (если есть). Строка 6 : контроллер по умолчанию будет Главная, действие по умолчанию будет Index и Id является необязательным.
WebApiConfig.cs:
это используется для регистрации различных маршрутов веб-API, таких как Asp.Net MVC, а также установить любые дополнительные настройки конфигурации веб-API.
AuthConfig.cs:
используется для регистрации внешних поставщиков проверки подлинности для EG. если вы хотите разрешить пользователям входить в систему с учетными данными от внешнего поставщика, например Facebook, Twitter, Microsoft или Google, а затем интегрировать некоторые функции от этих поставщиков в веб-приложение.
папка App_start была введена в Mvc4. Он содержит различные конфигурационные файлы, такие как :
- BundleConnfig.в CS,
- FilterConfig.в CS,
- RouteConfig.в CS,
- WebApiConfig.cs
для вас приложение.Все эти настройки зарегистрированы в методе App_Start Global.асакс.cs файл
BundleConfig.cs:
Это используется для создания и регистрации пакетов для CS и JS files.By по умолчанию в этот файл добавляются различные пакеты, включая jQuery,jQueryUI, jQuery validation, Modernizer и Site Css..
FilterConfig.cs -
Это используется для создания и регистрации глобального фильтра ошибок фильтра MVC, фильтра действий etc.By по умолчанию он содержит фильтр HandleErrorAttribute.
RouteConfig.cs -
Это используется для регистрации различных шаблонов маршрутов для вашего Asp.Net приложение MVC. От по умолчанию здесь зарегистрирован один маршрут с именем default Route.
WebApiConfig.cs -
Это используется для регистрации различных маршрутов веб-API, таких как Asp.Net MVC, а также установить любые дополнительные настройки конфигурации веб-API.
в предыдущих версиях MVC у нас просто есть метод RegisterRoutes() в global.файл asax для настройки маршрутизации. MVC 4 имеет встроенные шаблоны для разработки мобильных веб-приложений, веб-API (restful http services).таким образом, чтобы настроить маршруты для всех этих шаблонов разработки, мы будем использовать AuthConfig.cs (авторизация), BundleConfig.в CS(веб-potimization),,FilterConfig.cs, RouteConfig.cs, WebApiConfig.файлы cs (WEB API), и они будут поддерживаться в папке App_start. Давайте посмотрите на каждую из этих конфигураций.файлы cs. AuthConfig.cs-settings в этом файле позволяет вам войти в ASP.NET сайт MVC с использованием учетных данных сторонних клиентов, таких как учетная запись fb,учетная запись google,учетная запись yahoo и т. д..или вы также можете зарегистрироваться. BundleConfig.cs: настройки в этом файле позволяют повысить производительность приложений с помощью связывания... WebApiConfig: задает параметры маршрутизации для Web API (Примечание:в url не требуется никаких действий)
AuthConfi g.cs: используется для настройки параметров безопасности, включая сайты для входа в OAuth.
BundleConfi г.в CS: используется для регистрации Пучков, используемого комплектации и minifi катиона система. По умолчанию добавляется несколько пакетов, включая jQuery, jQueryUI, jQuery проверка, модернизация и ссылки CSS по умолчанию.
FilterConfi g.cs: неудивительно, что это используется для регистрации глобальных фильтров MVC fi. Единственный интернет фильтр по умолчанию зарегистрирован HandleErrorAttribute, но это отличное место для размещения другие регистрации фильтра.
RouteConfi g.cs: содержит дедушку операторов MVC confi g, Route confi гурация.
WebApiConfi g.cs: используется для регистрации маршрутов Web API, а также для установки любых дополнительных веб Настройки конфигурации API confi.
все эти настройки зарегистрированы в методе App_Start Global.асакс.cs файл
BundleConfig.cs:
Это используется для создания и регистрации пакетов для CS и js-файлов, которые у нас есть в шаблоне.
FilterConfig.цезий- Это используется для создания и регистрации глобального фильтра ошибок MVC filter
RouteConfig.cs -
Это используется для регистрации различных шаблонов маршрутов для вашего Asp.Net приложение MVC.
WebApiConfig.цезий- Это используется для регистрации различных маршрутов веб-API, таких как want login с учетными данными от внешнего поставщика, такого как Facebook, Twitter, Microsoft или Google,