J'ai déjà commencé mon projet de noyau mvc de dotnet sans identité sur Mac avec la CLI et maintenant je veux ajouter cette fonctionnalité. La seule option que j’ai connue jusqu’à présent est de créer un nouveau projet en
dotnet new mvc --auth
Existe-t-il une meilleure façon d'ajouter une identité à un projet existant? J'espère qu'il y a une commande 'nouveau dotnet'.
dotnet add package Microsoft.AspNetCore.Identity
Vous pouvez gérer cela via le gestionnaire de paquets NuGet:
Outils -> Gestionnaire de paquets NuGet -> Console
$
package d'installation Microsoft.AspNet.Identity.Core
Selon docs.Microsoft.com , vous pouvez scinder l'identité dans un projet MVC existant avec aspnet-codegenerator.
1) Si vous n'avez pas encore installé l'échafaudage ASP.NET Core, installez-le maintenant:
dotnet tool install -g dotnet-aspnet-codegenerator
2) Ajoutez une référence de package à Microsoft.VisualStudio.Web.CodeGeneration.Design au fichier de projet (* .csproj). Exécutez la commande suivante dans le répertoire du projet:
dotnet add package Microsoft.VisualStudio.Web.CodeGeneration.Design
dotnet restore
3) Exécutez la commande suivante pour répertorier les options de l’échafaudage Identity:
dotnet aspnet-codegenerator identity -h
4) Dans le dossier du projet, exécutez l’échafaudage Identity avec les options souhaitées. Par exemple, pour configurer identity avec l'interface utilisateur par défaut et le nombre minimum de fichiers, exécutez la commande suivante:
dotnet aspnet-codegenerator identity --useDefaultUI
5) Le code de base de données Identity généré nécessite des migrations Entity Framework Core. Créez une migration et mettez à jour la base de données. Par exemple, exécutez les commandes suivantes:
dotnet ef migrations add CreateIdentitySchema
dotnet ef database update
6) Appelez UseAuthentication après UseStaticFiles:
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseAuthentication(); // <-- add this line
app.UseMvcWithDefaultRoute();
}
}