Использование AuthConfig, BundleConfig, FilterConfig, RouteConfig и WebApiConfig в папке app Start() в MVC

можете ли вы подробно объяснить использование папки App_Start () в MVC4? Я вижу, что эта папка на самом деле недоступна в предыдущих версиях MVC. В этой папке 5 файлов.

  1. AuthConfig
  2. BundleConfig,
  3. FilterConfig,
  4. RouteConfig,
  5. 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.

обновление:

ниже приведены некоторые сведения и ориентиры для каждого файла. Использование этих файлов довольно просто. Я включил несколько онлайн-ссылок, которые могут помочь вам понять больше.


папка 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,