Saltar al contenido

Uso de AuthConfig, BundleConfig, FilterConfig, RouteConfig y WebApiConfig en la carpeta App_Start () en MVC

Hola, encontramos la respuesta a tu búsqueda, has scroll y la encontrarás un poco más abajo.

Solución:

App_Start es solo otra carpeta que agrupa la configuración de ASP.NET MVC, que en versiones anteriores de ASP.NET MVC se realizaba en Global.asax.

ASP.NET MVC introduce cada vez más elementos de configuración, y esta carpeta es ideal para colocar esta configuración. Por ejemplo, el nuevo auth. La configuración, como para los proveedores de inicio de sesión de terceros, también se colocan dentro de esta carpeta (en Startup.Auth.cs).

App_Start no es una carpeta especial de ASP.NET reconocida por ASP.NET/IIS. Puede cambiar el nombre de la carpeta si lo desea. El nombre es solo una convención, como App_GlobalResouces etc.

Actualizar:

A continuación, se muestra información y puntos de referencia para cada archivo. El uso de estos archivos es bastante sencillo. He incluido algunas referencias en línea que podrían ayudarlo a comprender más.

  • AuthConfig – registra proveedores de autenticación externos. Consulte Proveedores de autenticación externa ASP.NET MVC para obtener más información.

  • BundleConfig – registra su CSS y JS para que puedan agruparse y minimizarse. Consulte también ASP.NET MVC: Orientación: Agrupación y minificación.

  • WebApiConfig – solo aplicable si está utilizando Web API. Se puede utilizar para configurar rutas específicas de API web, cualquier configuración de API web y servicios de API web. Consulte también configuración de ASP.NET MVC Web API 2

  • FilterConfig – filtros globales registrados. Estos filtros se aplican a todas las acciones y controladores. Consulte también ASP.NET MVC 3: filtros de acción global

  • RouteConfig – ya encontraste información.

La carpeta App_start se ha introducido en Mvc4. Contiene varios archivos de configuración como:

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

App_start no es una carpeta especial en MVC ni los archivos de clase dentro de esta, estos son solo archivos de clase normales con diferentes configuraciones de aplicaciones (filtrado, agrupación, enrutamiento, etc.) y todas estas configuraciones se registran dentro del método Application_Start del archivo Global.asax.cs .


BundleConfig.cs:

Se utiliza para crear y registrar paquetes para archivos CSS y JS. por ej. jQuery, jQueryUI, validación de jQuery, Modernizr y CSS del sitio.

La agrupación y la minificación son dos técnicas para mejorar el tiempo de carga de las solicitudes al reducir la cantidad de solicitudes al servidor y el tamaño de los activos solicitados (como CSS y JavaScript).
Microsoft proporciona montaje Microsoft.Web.Optimization para el mismo

por ej. Creemos dos paquetes. uno para estilo (css) y otro para script (javascript)

Puede crear un paquete para css y javascripts respectivamente llamando
Método Add () de la clase BundleCollection dentro del archivo BundleConfig.cs.

PASO 1:

Crear paquete de estilo

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

Crear paquete de guiones

bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
 "~/Scripts/jquery-1.7.1.min.js",
 "~/Scripts/jquery.validate.min.js"));

PASO 2:

Los paquetes anteriores se definen en la clase BundleConfig como:

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"));
 
 

PASO 3:

Registro de paquete

Todos los paquetes están registrados en el evento Application_Start de Global.asax:

protected void Application_Start()

 BundleConfig.RegisterBundles(BundleTable.Bundles);

Minificación es una técnica para eliminar caracteres innecesarios (como espacios en blanco, nueva línea, tabulación) y comentarios de los archivos JavaScript y CSS para reducir el tamaño y, a su vez, mejorar el tiempo de carga de una página web. por ej. jquery-1.7.1.min.js es el archivo js minificado para jquery-1.7.1, que se utiliza principalmente para entornos de producción, para los que no son de producción, puede utilizar mejor js no minificados para tener una mejor legibilidad.

por ej.

Una función de Jquery en js sin comprimir puede verse así:

( 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 );
    

La misma función anterior en js comprimidos o minificados se verá así:

!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:

Esto se usa para crear y registrar un filtro MVC global:

por ej.

  • Filtros de autenticación (Ejecutado primero)
  • Filtros de autorización
  • Filtros de acción
  • Filtros de resultados
  • Filtros de excepción (Último ejecutado)

Nota: Como se mencionó anteriormente, los filtros se ejecutan en un orden.

por ej. Filtros de autenticación introducidos con MVC5:

 public interface IAuthenticationFilter
 
  void OnAuthentication(AuthenticationContext filterContext); 
  void OnAuthenticationChallenge(AuthenticationChallengeContext filterContext);
 

Puede crear su filtro de autenticación personalizado attribute implementando
IAuthenticationFilter como se muestra a continuación-


  public class CustomAuthenticationAttribute : ActionFilterAttribute, IAuthenticationFilter
  {
   public void OnAuthentication(AuthenticationContext filterContext)
    
    //logic goes here
   

Se ejecuta después del método OnAuthentication

     public void OnAuthenticationChallenge(AuthenticationChallengeContext
 filterContext)
         
              
              //logic goes here
             
         

Configurar filtros

Puede configurar su propio filtro personalizado en su aplicación en los siguientes tres niveles:

Nivel global

Al registrar su filtro en el evento Application_Start del archivo Global.asax.cs:

 protected void Application_Start()
 
  FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
 

Nivel de controlador

Al poner su filtro en la parte superior del nombre del controlador:

 [Authorize(Roles="Admin")]
 public class AdminController : Controller
 
  // Logic goes here
 

Nivel de acción

Al poner su filtro en la parte superior del nombre de la acción:

 public class UserController : Controller
 
  [Authorize(Users="User1,User2")]
  public ActionResult LinkLogin(string provider)
  
  // Logic goes here
  return View();
  
 

RouteConfig.cs:

Esto se usa para registrar varios patrones de ruta para su Asp.Net MVC
solicitud. El enrutamiento juega un papel importante en el flujo de ejecución de una aplicación ASP.NET MVC, asigna la URL de solicitud a una acción específica del controlador mediante una tabla de enrutamiento. Podemos definir reglas de enrutamiento para el motor, de modo que pueda asignar> URL entrantes al controlador apropiado. El motor de enrutamiento utiliza reglas de enrutamiento que se definen en el archivo Global.asax para analizar la URL y averiguar la ruta del controlador correspondiente. Podemos encontrar el siguiente fragmento de código> en el método Application_Start () del archivo Global.asax.

protected void Application_Start()
     
        AreaRegistration.RegisterAllAreas();
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
        RouteConfig.RegisterRoutes(RouteTable.Routes); 
        BundleConfig.RegisterBundles(BundleTable.Bundles);
     

Podemos encontrar el archivo RouteConfig.cs en la carpeta App_Start. Si seguimos este método en la clase RouteConfig, encontraremos una ruta configurada por defecto de la siguiente manera. La línea 3 a 7 está configurando una ruta predeterminada.

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.      );

Línea 4: Nombre de la ruta. Línea 5: representar URL: Controlador, acción seguida de id (si corresponde). Línea 6: el controlador predeterminado será Inicio, la acción predeterminada será Índice y la identificación es opcional.


WebApiConfig.cs:

Esto se utiliza para registrar varias rutas de la API WEB como Asp.Net MVC, así como para establecer cualquier configuración adicional de la API WEB.

AuthConfig.cs:

Se utiliza para registrar proveedores de autenticación externos para, por ejemplo. si desea permitir que los usuarios inicien sesión con credenciales de un proveedor externo, como Facebook, Twitter, Microsoft o Google, y luego integrar algunas de las funciones de esos proveedores en su aplicación web.

La carpeta App_start se ha introducido en Mvc4. Contiene varios archivos de configuración como:

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

para su aplicación Todas esas configuraciones están registradas dentro del método App_Start del archivo Global.asax.cs

BundleConfig.cs:

Esto se utiliza para crear y registrar paquetes para archivos CS y JS. De forma predeterminada, se agregan varios paquetes en este archivo, incluidos jQuery, jQueryUI, jQuery validation, Modernizer y Site Css.

FilterConfig.cs-

Esto se utiliza para crear y registrar el filtro de error de filtro MVC global, el filtro de acción, etc. De forma predeterminada, contiene el filtro HandleErrorAttribute.

RouteConfig.cs-

Esto se usa para registrar varios patrones de ruta para su aplicación Asp.Net MVC. De forma predeterminada, aquí se registra una ruta denominada Ruta predeterminada.

WebApiConfig.cs-

Esto se usa para registrar varias rutas de la API WEB como Asp.Net MVC, así como para establecer cualquier configuración adicional de la API WEB.

Comentarios y calificaciones del artículo

Eres capaz de añadir valor a nuestra información cooperando tu experiencia en las notas.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *