Подтвердить что ты не робот

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

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

  1. AuthConfig
  2. BundleConfig,
  3. FilterConfig,
  4. RouteConfig,
  5. WebApiConfig.
4b9b3361

Ответ 1

App_Start - это еще одна папка, объединяющая конфигурацию ASP.NET MVC, которая в предыдущих версиях ASP.NET MVC была выполнена в Global.asax.

ASP.NET MVC вводит все больше элементов конфигурации, и эта папка идеально подходит для размещения этой конфигурации. Например, MVC 5 new auth. конфигурации, например, для сторонних поставщиков регистрации, также помещаются в эту папку (в Startup.Auth.cs).

App_Start не является специальной папкой ASP.NET, распознанной ASP.NET/IIS. Вы можете переименовать папку, если хотите. Это просто соглашение, например App_GlobalResouces и т.д.

Обновление:

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

Ответ 2

Папка App_start была введена в Mvc4. Он содержит различные файлы конфигурации, такие как:

  • BundleConnfig.cs
  • FilterConfig.cs
  • RouteConfig.cs
  • WebApiConfig.cs
  • AuthConfig.cs

App_start - это не специальная папка в MVC и файлы классов внутри нее, это просто файлы нормального класса с различным приложением конфигурации (фильтрация, группировка, маршрутизация и т.д.), и все эти настройки регистрируются в методе Application_Start файла Global.asax.cs.


BundleConfig.cs:

Используется для создания и регистрации пакетов для CSS и JS файлов. для например. jQuery, jQueryUI, проверка jQuery, модернизация и CSS сайта.

Объединение и минимизация - это два метода для увеличения времени загрузки запроса на уменьшая количество запросов на сервер и уменьшая размер (например, CSS и JavaScript). Microsoft предоставляет сборку Microsoft.Web.Optimization для тех же

например. Позволяет создать два пакета. один для стиля (css) и другой для script (javascript)

Вы можете создать пакет для css и javascript соответственно, позвонив Метод Add() класса BundleCollection в файле BundleConfig.cs.

ШАГ 1:

Создание набора стилей

bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.min.css",
"~/Content/mystyle.min.css"));

Создание Script Bundle

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 для Global.asax:

protected void Application_Start()
{
 BundleConfig.RegisterBundles(BundleTable.Bundles);
}

Minification - это метод удаления ненужных символов (например,  пробел, новая строка, вкладка) и комментарии от JavaScript и CSS  файлы для уменьшения размера, в свою очередь, увеличивают время загрузки веб-страницы. для  например. jquery-1.7.1.min.js - это мини файл js для jquery-1.7.1,  в основном используется для производственной среды, для non-prod вы можете лучше использовать не-  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:

например.

  • Фильтры аутентификации (Выполнено первым)
  • Фильтры авторизации
  • Фильтры действий
  • Фильтры результатов
  • Фильтры исключений (Exected Last)

Примечание. Как упоминалось выше, фильтры выполняются в порядке.

например. Фильтры аутентификации, представленные с помощью 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 Файл Global.asax.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-адрес и узнать путь соответствующего контроллера. Мы можем найти следующий фрагмент кодa > в методе 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: контроллер, действие, за которым следует id (если есть). Строка 6: контроллер по умолчанию будет Домой, действие по умолчанию будет индексом, а идентификатор - необязательным.


WebApiConfig.cs:

Это используется для регистрации различных маршрутов API-интерфейсов WEB, таких как Asp.Net MVC, а также для настройки дополнительных конфигураций WEB API.

AuthConfig.cs:

Используется для регистрации внешних поставщиков проверки подлинности например. если вы хотите, чтобы пользователи регистрировались с учетными данными от внешнего поставщика, таких как Facebook, Twitter, Microsoft или Google, а затем интегрировали некоторые функции этих поставщиков в ваше веб-приложение.

Ответ 3

Папка App_start была введена в Mvc4. Он содержит различные файлы конфигураций, например:

  • BundleConnfig.cs,
  • FilterConfig.cs,
  • RouteConfig.cs,
  • WebApiConfig.cs

для вашего приложения. Все эти параметры зарегистрированы в модуле App_Start файла Global.asax.cs.

BundleConfig.cs:

Это используется для создания и регистрации пакетов для CS и JS файлов. По умолчанию в этот файл добавляются различные пакеты, включая jQuery, jQueryUI, проверку jQuery, модернизатор и сайт Css.

FilterConfig.cs -

Это используется для создания и регистрации глобального фильтра ошибок фильтра MVC, фильтра действий и т.д. По умолчанию он содержит фильтр HandleErrorAttribute.

RouteConfig.cs -

Используется для регистрации различных шаблонов маршрутов для вашего приложения ASP.NET MVC. По умолчанию один маршрут зарегистрирован здесь, названный как маршрут по умолчанию.

WebApiConfig.cs -

Это используется для регистрации различных маршрутов API-интерфейсов WEB, таких как Asp.Net MVC, а также для установки дополнительных настроек конфигурации WEB API.

Ответ 4

В предыдущих версиях MVC у нас есть только метод RegisterRoutes() в файле global.asax для настройки маршрутизации. MVC 4 имеет встроенные шаблоны для разработки мобильных веб-приложений, веб-apis (успокаивающие http-сервисы). Также для настройки маршрутов для всех этих разработок, основанных на шаблонах, мы будем использовать AuthConfig.cs(авторизация), BundleConfig.cs(web potimization), FilterConfig.cs, RouteConfig.cs, WebApiConfig.cs(WEB API), и они будут поддерживаться в папке App_start. Давайте посмотрим на каждый из этих файлов config.cs. AuthConfig.cs - настройки в этом файле позволяют вам заходить на сайт ASP.NET MVC с использованием учетных данных сторонних клиентов, таких как учетная запись fb, учетная запись google, учетная запись yahoo и т.д., И вы также можете зарегистрироваться. BundleConfig.cs: настройки в этом файле позволяют повысить производительность приложений, используя набор... WebApiConfig: устанавливает параметры маршрутизации для WEB API (Примечание: в URL не требуется никаких действий)

Ответ 5

  • AuthConfi g.cs: используется для настройки параметров безопасности, включая сайты для входа в систему OAuth.

  • BundleConfi g.cs: используется для регистрации пакетов, используемых связыванием и минификсацией система. По умолчанию добавляются несколько пакетов, включая jQuery, jQueryUI, jQuery валидации, Modernizr и ссылок CSS по умолчанию.

  • FilterConfi g.cs: Неудивительно, что это используется для регистрации глобальных фильтров MVC. Единственный Зарегистрированный по умолчанию файл HandleErrorAttribute, но это отличное место для размещения другие регистрации файлов.

  • RouteConfi g.cs: хранит дедушку из утверждений MVC confi g, Route confi конфигурирования.

  • WebApiConfi g.cs: используется для регистрации маршрутов веб-API, а также для установки любой дополнительной веб-страницы Конфигурация API.

Ответ 6

Все эти настройки зарегистрированы в методе App_Start файла Global.asax.cs.

BundleConfig.cs:

Это используется для создания и регистрации пакетов для файлов CS и JS, которые есть в шаблоне.

FilterConfig. cs- Используется для создания и регистрации глобального фильтра ошибок MVC-фильтра.

RouteConfig. cs-

Это используется для регистрации различных шаблонов маршрутов для вашего приложения Asp.Net MVC.

WebApiConfig. cs- Используется для регистрации различных маршрутов WEB API, таких как вход в систему с учетными данными внешнего провайдера, такого как Facebook, Twitter, Microsoft или Google,