web-dev-qa-db-fra.com

Utilisation de AuthConfig, BundleConfig, FilterConfig, RouteConfig et WebApiConfig dans le dossier App_Start () de MVC

Pouvez-vous s'il vous plaît expliquer en détail l'utilisation du dossier App_Start () dans MVC4? Je constate que ce dossier n'est actuellement pas disponible dans les versions précédentes de MVC. Il y a 5 fichiers dans ce dossier. 

  1. AuthConfig
  2. BundleConfig,
  3. FilterConfig,
  4. RouteConfig,
  5. WebApiConfig.
28
Harsha V Chunduri

App_Start est simplement un autre dossier qui regroupe la configuration ASP.NET MVC, qui était effectuée dans les versions précédentes d'ASP.NET MVC dans Global.asax.

ASP.NET MVC introduit de plus en plus d'éléments de configuration et ce dossier est idéal pour placer cette configuration. Par exemple, la nouvelle autorisation de MVC 5. La configuration, par exemple pour les fournisseurs de connexion tiers, est également placée dans ce dossier (dans Startup.Auth.cs).

App_Start n'est pas un dossier spécial ASP.NET reconnu par ASP.NET/IIS. Vous pouvez renommer le dossier si vous le souhaitez. Le nom est juste une convention, comme App_GlobalResouces etc.

Mettre à jour:

Vous trouverez ci-dessous des informations et des points de référence pour chaque fichier. L'utilisation de ces fichiers est assez simple. J'ai inclus quelques références en ligne qui pourraient vous aider à mieux comprendre.

36
Spock

Le dossier App_start a été introduit dans Mvc4. Il contient divers fichiers de configuration tels que:

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

App_start n'est pas un dossier spécial dans MVC, ni les fichiers de classe qu'il contient, il ne s'agit que de fichiers de classe normaux avec des applications différentes. fichier .cs.


BundleConfig.cs:

Ceci est utilisé pour créer et enregistrer des ensembles pour les fichiers CSS et JS. pour par exemple. jQuery, jQueryUI, validation jQuery, Modernizr et CSS du site ..

Le groupement et la minification sont deux techniques permettant d’augmenter le temps de chargement des requêtes de en réduisant le nombre de demandes au serveur et en réduisant la taille de actifs demandés (tels que CSS et JavaScript.) Microsoft fournit Assembly Microsoft.Web.Optimization pour la même chose

pour par exemple . Permet de créer deux ensembles. un pour le style (css) et un autre pour le script (javascript)

Vous pouvez créer un ensemble pour css et javascripts en appelant
Méthode BundleCollection class Add () dans le fichier BundleConfig.cs.

ÉTAPE 1:

Création d'un ensemble de styles

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

Création d'un ensemble de scripts

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

ÉTAPE 2:

Les ensembles ci-dessus sont définis dans la classe BundleConfig comme suit:

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

ÉTAPE 3:

Enregistrement du paquet

Tous les ensembles sont enregistrés dans l'événement Application_Start de Global.asax:

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

Minification est une technique permettant de supprimer les caractères inutiles (tels que Les espaces, la nouvelle ligne, la tabulation) et les commentaires des scripts JavaScript et CSS réduire la taille des fichiers, ce qui améliore le temps de chargement d’une page Web. pour par exemple. jquery-1.7.1.min.js est le fichier js minifié pour jquery-1.7.1, principalement utilisé pour l'environnement de production, pour un non-prod, vous pouvez mieux utiliser un non - js minified pour avoir une meilleure lisibilité.

pour par exemple.

Une fonction Jquery dans un fichier Js non compressé peut ressembler à:

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

même fonction ci-dessus dans js compressé ou minifié ressemblera à ceci:

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

Ceci est utilisé pour créer et enregistrer un filtre MVC global: 

pour par exemple. 

  • Filtres d'authentification (Exécuté en premier)
  • Filtres d'autorisation 
  • Filtres d'action 
  • Filtres de résultat 
  • Filtres d'exception (Dernier attendu)

Remarque: Comme mentionné ci-dessus, les filtres sont exécutés dans un ordre.

pour par exemple. Filtres d'authentification introduits avec MVC5:

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

Vous pouvez créer votre attribut de filtre CustomAuthentication en implémentant
IAuthenticationFilter comme indiqué ci-dessous -


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

S'exécute après la méthode OnAuthentication

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

Configuration des filtres  

Vous pouvez configurer votre propre filtre personnalisé dans votre application à l'adresse trois niveaux suivants: 

Niveau global

En enregistrant votre filtre dans l'événement Application_Start de Fichier Global.asax.cs: 

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

Niveau du contrôleur

En plaçant votre filtre sur le nom du contrôleur:

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

Niveau d'action

En plaçant votre filtre en haut du nom de l'action:

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

RouteConfig.cs:

Ceci est utilisé pour enregistrer divers modèles d’itinéraires pour votre Asp.Net MVC
application. Le routage joue un rôle important dans une application ASP.NET MVC flux d’exécution, il mappe l’URL de la demande avec une action spécifique du contrôleur à l’aide de Table de routage. Nous pouvons définir des règles de routage pour le moteur, de sorte qu'il puisse mapper les URL entrantes vers le contrôleur approprié. Moteur de routage utilise des règles de routage qui sont définis dans le fichier Global.asax afin d’analyser l’URL et de trouver le chemin du contrôleur correspondant. Nous pouvons trouver le morceau de code suivant> dans la méthode Application_Start () du fichier Global.asax.

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

Nous pouvons trouver le fichier RouteConfig.cs dans le dossier App_Start. Si nous suivons cette méthode dans la classe RouteConfig, nous trouverons une configuration par défaut itinéraire comme suit. Les lignes 3 à 7 configurent un itinéraire par défaut.

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

Ligne 4: Nom de l'itinéraire. Ligne 5: représente l'URL: Controller, action suivie par id (le cas échéant). Ligne 6: le contrôleur par défaut sera Accueil, l'action par défaut sera Index et Id est facultatif.


WebApiConfig.cs:

Ceci est utilisé pour enregistrer différentes routes de l'API WEB telles que Asp.Net MVC, ainsi que pour définir les paramètres de configuration supplémentaires de l'API WEB.

AuthConfig.cs:

Utilisé pour enregistrer les fournisseurs d’authentification externes si vous souhaitez permettre aux utilisateurs de se connecter avec les informations d'identification d'un fournisseur externe, tel que Facebook, Twitter, Microsoft ou Google, puis d'intégrer certaines des fonctionnalités de ces fournisseurs dans votre application Web.

14
Bhuwan Pandey

Le dossier App_start a été introduit dans Mvc4. Il contient divers fichiers de configuration tels que:

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

pour votre application. Tous ces paramètres sont enregistrés dans la méthode App_Start du fichier Global.asax.cs. 

BundleConfig.cs:

Ceci est utilisé pour créer et enregistrer des ensembles pour les fichiers CS et JS.Par défaut, divers ensembles sont ajoutés à ce fichier, notamment jQuery, jQueryUI, la validation jQuery, Modernizer et Site Css.

FilterConfig.cs-

Ceci est utilisé pour créer et enregistrer un filtre d'erreur de filtre MVC global, un filtre d'action, etc. Il contient par défaut le filtre HandleErrorAttribute.

RouteConfig.cs-

Ceci est utilisé pour enregistrer différents modèles de route pour votre application Asp.Net MVC. Par défaut, une route est enregistrée ici, nommée Route par défaut.

WebApiConfig.cs-

Ceci est utilisé pour enregistrer différentes routes d'API WEB telles que Asp.Net MVC, ainsi que pour définir des paramètres de configuration supplémentaires pour l'API WEB.

3
Naresh Jinkala

Dans les versions précédentes de MVC, nous n'avions que la méthode RegisterRoutes () dans le fichier global.asax pour configurer le routage. MVC 4 a des modèles intégrés pour développer des applications Web mobiles, des sites Web apis (services http reposants). Afin de configurer les routages pour tous ces développements pilotés par des modèles, nous utiliserons le fichier AuthConfig.cs (autorisation), BundleConfig.cs (Potimisation Web) , FilterConfig.cs, RouteConfig.cs, WebApiConfig.cs (API Web) et ils seront conservés dans le dossier App_start . Voyons chacun de ces fichiers config.cs . AuthConfig .cs - les paramètres de ce fichier vous permettent de vous connecter au site ASP.NET MVC à l’aide d’informations d’identité client tierces telles que compte fb, compte google, compte yahoo, etc. ou vous pouvez également vous inscrire . BundleConfig.cs: paramètres de ce fichier Le fichier permet d’améliorer les performances des applications en regroupant ... WebApiConfig: définit les paramètres de routage pour l’API WEB (Remarque: aucune action requise dans l’URL)

1
Anji

Tous ces paramètres sont enregistrés dans la méthode App_Start du fichier Global.asax.cs.

BundleConfig.cs:

Ceci est utilisé pour créer et enregistrer des ensembles pour les fichiers CS et JS que nous avons dans le modèle.

FilterConfig.cs - Ceci est utilisé pour créer et enregistrer un filtre d'erreur de filtre MVC global

RouteConfig.cs-

Ceci est utilisé pour enregistrer différents modèles de route pour votre application Asp.Net MVC. 

WebApiConfig.cs - Il est utilisé pour enregistrer divers itinéraires d'API Web, tels que la connexion avec des informations d'identification d'un fournisseur externe, tels que Facebook, Twitter, Microsoft ou Google.

0
Manpreet Singh
  • AuthConfi g.cs: utilisé pour configurer les paramètres de sécurité, y compris les sites pour la connexion à OAuth.

  • BundleConfi g.cs: utilisé pour enregistrer les paquets utilisés par le système de groupement et de minifi cation Plusieurs ensembles sont ajoutés par défaut, notamment jQuery, jQueryUI, jQuery Validation, Modernizr et des références CSS par défaut.

  • FilterConfi g.cs: Sans surprise, ceci est utilisé pour enregistrer les filtres MVC globaux. Le seul filtre sélectionné par défaut est le HandleErrorAttribute, mais c’est un endroit idéal pour enregistrer D’autres enregistrements de filtres.

  • RouteConfi g.cs: contient le grand-père des instructions de configuration MVC, Route confi Guration.

  • WebApiConfi g.cs: utilisé pour enregistrer les itinéraires de l'API Web, ainsi que pour définir tout paramètre de configuration Web API supplémentaire.

0
Bhavin Modi