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


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.


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 .


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




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!

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.