Identité dans ASP.Net Core 2.1: personnaliser AccountController

90

J'ai installé ASP.NET Core 2.1mais même si j'ai créé une nouvelle ASP.NET Core Web Applicationutilisation ASP.NET Core 2.1avec Individual User AccountsStore user accounts in-appje ne trouve pas le AccountController ou Views.

Je peux toujours m'inscrire et me connecter sans problème mais je ne trouve pas le code, il était présent en 2.0.

entrez la description de l'image ici

Ogglas
la source
J'ai posé une question ici si vous souhaitez y répondre: stackoverflow.com/questions/51728881/… . J'ai du mal à me déconnecter dans une application .NET Core 2.1 Identity Server 4. +1.
w0051977

Réponses:

74

L'une des modifications apportées à la version 2.1 concernait les bibliothèques de classes Razor et l'identité par défaut se trouve dans l'une de celles-ci dans les modèles d'authentification individuels. Si vous souhaitez avoir le code dans votre application afin de pouvoir le personnaliser, vous pouvez l'échafauder avec Visual Studio ou avec l'outil d'échafaudage global. Consultez ce guide pour savoir comment faire les deux.

marcusturewicz
la source
20
J'ai pu générer des fichiers cshtml et non des contrôleurs. Guide ne l'a pas mentionné, aucune idée de comment générer accountController?
user1085907
6
Ah mon mauvais .. c'est comme un concepteur dans un sous
user1085907
15
pourquoi cette chose est-elle une amélioration ? Cela rend les choses inutilement alambiquées.
liang
93

ASP.NET Core 2.1 a introduit une nouvelle fonctionnalité appelée bibliothèques de classes Razor qui vous permet de créer des vues et des pages dans le cadre d'une bibliothèque réutilisable. L'identité ASP.NET Core a été déplacée vers une telle RCL. Vous pouvez le remplacer dans votre projet:

  1. Dans l' Explorateur de solutions , cliquez avec le bouton droit sur le projet> Ajouter > Nouvel élément de structure .
  2. Dans le volet gauche de la boîte de dialogue Ajouter un échafaudage , sélectionnez Identité > AJOUTER .
  3. Dans la boîte de dialogue ADD Identity , choisissez les fichiers que vous souhaitez remplacer.
    1. Sélectionnez la mise en page si nécessaire
    2. Sélectionnez ou créez une classe de contexte de données .
  4. Appuyez sur AJOUTER .

Pour plus d'informations, visitez la documentation .

Xeevis
la source
1
Vous devez faire un clic droit sur le projet et non sur la solution pour obtenir le "Nouvel élément d'échafaudage". Merci pour les informations à ce sujet
leen3o
1
Cela n'apporte toujours pas dans le champ Account Controller, dire que j'ai ajouté des champs personnalisés, comment puis-je lui dire que j'en ai besoin dans la méthode d'enregistrement.
rogue39nin le
Hé, que faire si je veux écraser le contrôleur au lieu de la page de rasoir? J'utilise SPA, donc je ne sais pas si je peux remplacer le contrôleur
Robert Tirta
7

Ma solution est de créer un projet avec .net core 2.0, puis de mettre à jour le framework vers 2.1 et toute la dépendance à la dernière version

Wang
la source
2

Pour autant que je sache, le code AccountController a été déplacé vers les pages Razor (et leur code derrière) et fonctionne mieux en utilisant les valeurs par défaut afin de personnaliser le code, vous pouvez Scaffold (c'est-à-dire créer les fichiers au bon endroit) à partir d'un tout nouveau Net Projet Core 2.1 en cliquant avec le bouton droit sur le projet dans Visual Studio 2017 et en sélectionnant Add => New Scaffolded Item => Identity qui ouvre une boîte de dialogue de sélection. Choisissez les pages souhaitées et le tour est joué. Changez simplement les pages souhaitées et copiez-les au même endroit dans un projet avec Identity activé car ces nouvelles pages remplacent automatiquement les valeurs par défaut. C'est la nouvelle façon de personnaliser l'authentification / autorisation en utilisant Identity sans savoir si beaucoup considèrent cette avancée significative!

Lance Parkington
la source