asp.net mvc 4 - net - Uso de AuthConfig, BundleConfig, FilterConfig, RouteConfig y WebApiConfig en la carpeta App_Start() en MVC
forgot password asp net c# (6)
¿Puedes explicar en detalle el uso de la carpeta App_Start () en MVC4? Veo que esta carpeta no está disponible en versiones anteriores de MVC. Hay 5 archivos en esta carpeta.
- AuthConfig
- BundleConfig,
- FilterConfig,
- RouteConfig,
- WebApiConfig.
Gracias por adelantado.
En las versiones anteriores de MVC, solo tenemos el método RegisterRoutes () en el archivo global.asax para configurar el enrutamiento. MVC 4 ha incorporado plantillas para desarrollar aplicaciones web móviles, aplicaciones web (servicios http de descanso). Para configurar las rutas para todo el desarrollo basado en plantillas, utilizaremos AuthConfig.cs (Authorization), BundleConfig.cs (web potimization ), FilterConfig.cs, RouteConfig.cs, WebApiConfig.cs (API WEB) y se mantendrán en la carpeta App_start. Echemos un vistazo a cada uno de esos archivos config.cs. AuthConfig.cs: la configuración en este archivo le permite iniciar sesión en el sitio MVC de ASP.NET utilizando credenciales de clientes de terceros, como cuenta de fb, cuenta de Google, cuenta de yahoo, etc. o también puede registrarse. BundleConfig.cs: la configuración de este archivo permite mejorar el rendimiento de las aplicaciones que usan paquetes ... WebApiConfig: establece la configuración de enrutamiento para la API WEB (Nota: no es necesario realizar ninguna acción en la URL)
La carpeta App_start se ha introducido en Mvc4. Contiene varios archivos de configuraciones 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 este, estos son solo archivos de clases normales con diferentes configuraciones de aplicaciones (filtrado, agrupamiento, enrutamiento, etc.) y todas estas configuraciones se registran en el método Application_Start del archivo Global.asax.cs .
BundleConfig.cs:
Esto se usa para crear y registrar paquetes para archivos CSS y JS. por ej. jQuery, jQueryUI, jQuery Validación, Modernizr y Site CSS ..
El agrupamiento y la minificación son dos técnicas para mejorar el tiempo de carga de solicitudes al reducir el número de solicitudes al servidor y reducir el tamaño de los activos solicitados (como CSS y JavaScript). Microsoft proporciona el ensamblado Microsoft.Web.Optimization para el mismo
por ej. Vamos a crear dos paquetes. uno para el estilo (css) y otro para el script (javascript)
Puede crear paquetes para css y javascripts respectivamente llamando
Método Add () de la clase BundleCollection dentro del archivo BundleConfig.cs.
PASO 1:
Crear paquete de estilos
bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.min.css", "~/Content/mystyle.min.css"));
Crear paquete de scripts
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); }
La minificación es una técnica para eliminar caracteres innecesarios (como espacios en blanco, nueva línea, pestaña) y comentarios de los archivos JavaScript y CSS para reducir el tamaño, 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 el entorno de producción, para el que no se utiliza, puede usar mejor js no minificados para tener una mejor legibilidad.
por ej.
Una función Jquery en js sin comprimir puede ser algo así como:
( 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 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 (Última ejecución)
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 atributo de filtro CustomAuthentication 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 desempeña 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 de controlador específica utilizando una tabla de enrutamiento. Podemos definir Reglas de enrutamiento para el motor, de modo que pueda asignar> URL entrantes al controlador apropiado. Routing Engine utiliza reglas de enrutamiento definidas en el archivo Global.asax para analizar la URL y encontrar 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 hay). Línea 6: el controlador predeterminado será Home, la acción predeterminada será Index y Id es opcional.
WebApiConfig.cs:
Esto se usa para registrar varias rutas de la API WEB, como Asp.Net MVC, así como también para establecer configuraciones adicionales de configuraciones de la API WEB.
AuthConfig.cs:
Se usa para registrar proveedores externos de autenticación para, p. Ej. si desea permitir a los usuarios iniciar sesión con las 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 configuraciones 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 usa para crear y registrar paquetes para archivos CS y JS. De manera predeterminada, se agregan varios paquetes en este archivo, incluidos jQuery, jQueryUI, validación de jQuery, Modernizer y Site Css.
FilterConfig.cs-
Esto se usa para crear y registrar filtro de filtro MVC global, filtro de acción, etc. Por defecto, 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, una ruta se registra aquí denominada ruta predeterminada.
WebApiConfig.cs-
Esto se usa para registrar varias rutas de la API WEB, como Asp.Net MVC, así como establecer configuraciones de configuraciones de API WEB adicionales.
Todas esas configuraciones están registradas dentro del método App_Start del archivo Global.asax.cs
BundleConfig.cs:
Esto se usa para crear y registrar paquetes para archivos CS y JS que tenemos en la plantilla.
FilterConfig.cs: esto se usa para crear y registrar filtro de error de filtro MVC global
RouteConfig.cs-
Esto se usa para registrar varios patrones de ruta para su aplicación Asp.Net MVC.
WebApiConfig.cs: se usa para registrar varias rutas de la API WEB, como el inicio de sesión con credenciales de un proveedor externo, como Facebook, Twitter, Microsoft o Google.
App_Start
es simplemente otra carpeta que agrupa la configuración ASP.NET MVC, que en versiones anteriores de ASP.NET MVC se realizó en Global.asax
.
ASP.NET MVC presenta más y más elementos de configuración, y esta carpeta es ideal para colocar esta configuración. Por ejemplo, la nueva autorización de MVC 5. configuración, como para 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 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 hay 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 pueden ayudarlo a comprender más.
AuthConfig
: registra los proveedores de autenticación externa. Consulte los 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 minificarse. Consulte también ASP.NET MVC: Guía: Agrupación y minificación .WebApiConfig
: solo se aplica si usa la API web . Se puede usar para configurar rutas específicas de API web, cualquier configuración de API web y servicios de API web. Consulte también configurar ASP.NET MVC Web API 2FilterConfig
: filtros globales registrados. Estos filtros se aplican a todas las acciones y controladores. Consulte también ASP.NET MVC 3: filtros de acción globalesRouteConfig
: ya encontraste información.
AuthConfi g.cs: se utiliza para configurar la configuración de seguridad, incluidos los sitios para el inicio de sesión de OAuth.
BundleConfi g.cs: se utiliza para registrar los paquetes utilizados por el sistema de agrupación y minifi cación. De forma predeterminada, se agregan varios paquetes, incluidos jQuery, jQueryUI, jQuery Validación, Modernizr y referencias CSS predeterminadas.
FilterConfi g.cs: Como era de esperar, esto se usa para registrar fi ltros MVC globales. El único fi ltro registrado por defecto es HandleErrorAttribute, pero este es un gran lugar para colocar otros registros de fi ltros.
RouteConfi g.cs: contiene el abuelo de las declaraciones de confguración de MVC, confi guración de la ruta.
WebApiConfi g.cs: se utiliza para registrar las rutas de la API web, así como establecer cualquier configuración adicional de configuración de la API web.