Nous souhaitons mettre en place pour notre projet de la Diagonale du Poulpe un système d’authentification pour les utilisateurs du jeu.
Ainsi, nous avons décidé d’utiliser Identity de .net core.
Voici la première étape d’une belle aventure autour de l’authentification avec .net core !
Installation de librairies
Si l’on en suit la documentation, on doit d’abord installer :
dotnet add package Microsoft.VisualStudio.Web.CodeGeneration.Design
dotnet restore
Or nous avons un problème, notre site n’est pas en 2.2, mais en 2.1, il nous faut donc choisir la version de la dll à installer.
C’est faisable en faisant dotnet add package –v 2.1
Utilisation du moteur de génération pour Identity
La documentation nous invite à générer automatiquement le code pour l’authentification.
dotnet aspnet-codegenerator identity –h
Or, il nous faut d’abord installer le moteur pour la génération automatique :
dotnet tool install -g dotnet-aspnet-codegenerator
Et là, nous tombons sur un bug de l’installeur : il a installé l’outil de génération pour la dernière version du framework.
Or, lorsqu’on lance l’exécutable dotnet aspnet-codegenerator identity –h il va chercher l’exécutable dans la version du framework du projet, ici le 2.1.
Seul Seul moyen actuellement c’est de renommer le dossier, avec Manuel (super le jeu de mot :=p)
Une solution existe
En fait l’installeur se passe sur le sdk défini dans le global.json de votre projet.
S’il n’est pas défini, il prend la dernière version du framework core en cours.
Ainsi, pour être sûr d’avoir la bonne version du framework de défini pour les outils de dotnet, il nous faut créer un fichier global.json.
(pour connaître les versions du framework core, vous lancez un dotnet –list-sdks. Chez nous, nous avons la 2.1 et la 2.4).
Or, il faut savoir que les outils dotnet tool n’existe qu’à partir de la v2.1.3.
Assurez-vous d’avoir à minima la 2.1.3 installée sur votre pc.
Vous pouvez alors lancer la création du fichier global.json, pour la version 2.1.3 (ou supérieure) :
dotnet new globaljson –sdk-version 2.1.401
Gogogo, vous pouvez lancer l’installation du codegenerator, pour la bonne version :
dotnet tool install -g dotnet-aspnet-codegenerator
Et ça ne fonctionne toujours pas !
Il attend la dernière version : The application to execute does not exist: ‘..\.dotnet\tools\.store\dotnet-aspnet-codegenerator\2.2.0-rtm-35687\dotnet-aspnet-codegenerator\2.2.0-rtm-35687\tools\netcoreapp2.1\any\dotnet-aspnet-codegenerator.dll’.
Préciser la bonne version de l’outil à installer
Au lieu de laisser l’installer décider la version tout seul, il faut en fait spécifier la version !
dotnet tool install –global dotnet-aspnet-codegenerator –version 2.1.0
Et voilà, nous pouvons lancer sur notre projet un :
dotnet aspnet-codegenerator identity –useDefaultUI
Et le tour est joué !!!
Prochaine étape :
Utilisation et mise en place en local.