Tożsamość w ASP.Net Core 2.1: Dostosuj AccountController

90

Zainstalowałem, ASP.NET Core 2.1ale mimo że utworzyłem nowe ASP.NET Core Web Applicationużycie ASP.NET Core 2.1z Individual User AccountsStore user accounts in-appnie mogę znaleźć kontrolera konta ani widoków.

Nadal mogę się zarejestrować i zalogować bez problemu, ale nie mogę znaleźć do niego kodu, był obecny w wersji 2.0.

wprowadź opis obrazu tutaj

Ogglas
źródło
Zadałem tutaj pytanie, jeśli jesteś zainteresowany odpowiedzią: stackoverflow.com/questions/51728881/… . Mam problem z wylogowaniem w aplikacji .NET Core 2.1 Identity Server 4. +1.
w0051977

Odpowiedzi:

74

Jedną ze zmian w 2,1 były biblioteki klas Razor, a tożsamość domyślna znajduje się w jednej z nich w poszczególnych szablonach uwierzytelniania. Jeśli chcesz mieć kod w swojej aplikacji, aby móc go dostosować, możesz utworzyć szkielet w programie Visual Studio lub za pomocą narzędzia do tworzenia szkieletów globalnych. Zobacz ten przewodnik, jak to zrobić.

marcusturewicz
źródło
20
Udało mi się wygenerować pliki cshtml, a nie kontrolery. Przewodnik nie wspomniał o tym, masz pomysł, jak wygenerować accountController?
user1085907
6
Ach, moja wina ... to jak projektant w
podpliku
15
dlaczego to jest poprawa ? To sprawia, że ​​sprawy są niepotrzebnie zagmatwane.
liang
93

W ASP.NET Core 2,1 wprowadzono nową funkcję o nazwie Biblioteki klas Razor, która umożliwia tworzenie widoków i stron w ramach biblioteki wielokrotnego użytku. Tożsamość ASP.NET Core została przeniesiona do takiego RCL. Możesz nadpisać to w swoim projekcie:

  1. W Eksploratorze rozwiązań kliknij prawym przyciskiem myszy projekt> Dodaj > Nowy element szkieletu .
  2. W lewym okienku okna dialogowego Dodaj szkielet wybierz opcję Tożsamość > DODAJ .
  3. W oknie dialogowym DODAJ Tożsamość wybierz pliki, które chcesz zastąpić.
    1. W razie potrzeby wybierz układ
    2. Wybierz lub utwórz klasę kontekstu danych .
  4. Naciśnij DODAJ .

Więcej informacji można znaleźć w dokumentacji .

Xeevis
źródło
1
Musisz kliknąć prawym przyciskiem myszy projekt, a nie rozwiązanie, aby uzyskać „Nowy element rusztowaniowy”. Dzięki za
ostrzeżenia
1
To nadal nie powoduje wprowadzenia pola Kontroler konta, powiedzmy, że dodałem niestandardowe pola, jak mam powiedzieć, że potrzebuję ich w metodzie rejestracji.
rogue39nin
Hej, a co jeśli chcę nadpisać kontroler zamiast strony brzytwy? Używam SPA, więc nie jestem pewien, czy mogę zastąpić kontroler
Robert Tirta
7

Moje rozwiązanie polega na utworzeniu projektu z .net core 2.0, a następnie zaktualizowaniu frameworka do 2.1 i wszystkich zależności do najnowszej wersji

Wang
źródło
2

O ile mi wiadomo, kod AccountController został przeniesiony na strony Razor (i ich kod z tyłu) i działa najlepiej przy użyciu ustawień domyślnych, więc aby dostosować kod można Scaffold (tj. Utworzyć pliki we właściwym miejscu) z zupełnie nowej sieci Projekt Core 2.1, klikając prawym przyciskiem myszy projekt w programie Visual Studio 2017 i wybierając opcję Dodaj => nowy element szkieletowy => tożsamość, która otwiera okno dialogowe Wybierz. Wybierz żądane strony i gotowe. Po prostu zmień żądane strony i skopiuj w to samo miejsce w projekcie obsługującym tożsamość, ponieważ te nowe strony automatycznie zastępują ustawienia domyślne. Jest to nowy sposób dostosowywania uwierzytelniania / autoryzacji za pomocą Tożsamości, nie mając pewności, czy wielu uważa ten znaczący postęp!

Lance Parkington
źródło