J'ai un projet de site Web que j'ai converti en .NET 4.5 . Je voudrais utiliser le AuthConfig que j'ai vu ajouté au répertoire App_Start . Quelques questions.
Le répertoire App_Start est-il uniquement disponible pour les projets d'application Web ?, Lorsque j'essaie d'ajouter un dossier asp.net existant, je ne le vois pas comme une option à ajouter.
Deuxièmement, est-ce que je peux juste un AuthConfig déposer n'importe où dans mon projet de site web si c'est le cas?
Le dossier App_Start a été introduit dans les modèles MVC4. Il n’ya rien de spécial à ce sujet qui fait que le code y soit exécuté par convention. Par exemple, le modèle HotTowel SPA crée les éléments suivants dans le dossier App_Start:
Le code dans App_Start est exécuté par global.asax.cs comme indiqué ci-dessous.
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
WebApiConfig.Register(GlobalConfiguration.Configuration);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
AuthConfig.RegisterAuth();
}
App_Start n'a rien de spécial, c'est juste un dossier. Ce qui est spécial, c'est la façon dont il est utilisé, et cela est spécifique à la structure WebActivator, un paquet NuGet que vous pouvez installer. App_Start et WebActivator ne sont pas spécifiques à .NET 4.5, mais ils requièrent .net 4 (ce qui signifie VS 2010 ou 2012)
Voir http://blog.davidebbo.com/2011/02/appstart-folder-convention-for-nuget.html
Bien que Il n'y a rien de spécial à propos d'App_Start , mais vous pouvez créer des fichiers lorsque ce dossier est exécuté lorsque l'application démarre comme Application_Start
dans Global.asax
. J'utilise Ninject dependency injector dans mon projet qui a le dossier App_Start
. Il y a no fichier Global.asax dans mon projet:
mais toute la configuration que j'ai définie dans le fichier NinjectWebCommon
sera exécutée au démarrage de l'application. NinjectWebCommon
a le contenu suivant:
using WebFormNinject.Models;
[Assembly: WebActivator.PreApplicationStartMethod(typeof(WebFormNinject.App_Start.NinjectWebCommon), "Start")]
[Assembly: WebActivator.ApplicationShutdownMethodAttribute(typeof(WebFormNinject.App_Start.NinjectWebCommon), "Stop")]
namespace WebFormNinject.App_Start
{
using System;
using System.Web;
using Microsoft.Web.Infrastructure.DynamicModuleHelper;
using Ninject;
using Ninject.Web.Common;
public static class NinjectWebCommon
{
private static readonly Bootstrapper bootstrapper = new Bootstrapper();
/// <summary>
/// Starts the application
/// </summary>
public static void Start()
{
DynamicModuleUtility.RegisterModule(typeof(OnePerRequestHttpModule));
DynamicModuleUtility.RegisterModule(typeof(NinjectHttpModule));
bootstrapper.Initialize(CreateKernel);
}
/// <summary>
/// Stops the application.
/// </summary>
public static void Stop()
{
bootstrapper.ShutDown();
}
/// <summary>
/// Creates the kernel that will manage your application.
/// </summary>
/// <returns>The created kernel.</returns>
private static IKernel CreateKernel()
{
var kernel = new StandardKernel();
kernel.Bind<Func<IKernel>>().ToMethod(ctx => () => new Bootstrapper().Kernel);
kernel.Bind<IHttpModule>().To<HttpApplicationInitializationHttpModule>();
RegisterServices(kernel);
return kernel;
}
/// <summary>
/// Load your modules or register your services here!
/// </summary>
/// <param name="kernel">The kernel.</param>
private static void RegisterServices(IKernel kernel)
{
kernel.Bind<IDisplay>().To<MockDisplay>();
}
}
}
J'étais curieux de savoir où la fonction RegisterServices
sera exécutée! Puis j'ai remarqué à cette section de code:
[Assembly: WebActivator.PreApplicationStartMethod(typeof(WebFormNinject.App_Start.NinjectWebCommon), "Start")]
[Assembly: WebActivator.ApplicationShutdownMethodAttribute(typeof(WebFormNinject.App_Start.NinjectWebCommon), "Stop")]
Ces attributs rendent la méthode Start
exécutée à l’application démarrée. Pour plus d'informations, consultez WebActivator/PreApplicationStartMethod
En bref: Pour mieux comprendre les modifications de configuration dans les sites Web ASP.NET 4.5, consultez la source officielle suivante - Modifications de configuration dans les modèles de site Web ASP.NET 4.5 .
Il vous indiquera chaque changement intervenu sur la nouvelle version du site Web ASP.NET, à savoir la version 4.5.
Si vous le souhaitez pour configurer votre carte de routage sur les nouveaux modèles MVC 5, vous pouvez définir vos itinéraires sur le fichier Startup.cs dans la méthode Configure.