Identity trong ASP.Net Core 2.1: Tùy chỉnh AccountController


90

Tôi đã cài đặt ASP.NET Core 2.1nhưng mặc dù tôi đã tạo ra một mới ASP.NET Core Web Applicationsử dụng ASP.NET Core 2.1với Individual User AccountsStore user accounts in-appTôi không thể tìm thấy AccountController hoặc xem.

Tôi vẫn có thể đăng ký và đăng nhập mà không gặp sự cố nhưng tôi không thể tìm thấy mã cho nó, nó đã có mặt trong phiên bản 2.0.

nhập mô tả hình ảnh ở đây


Tôi đã đặt một câu hỏi ở đây nếu bạn muốn trả lời: stackoverflow.com/questions/51728881/… . Tôi đang gặp khó khăn với việc đăng xuất trong ứng dụng .NET Core 2.1 Identity Server 4. +1.
w0051977

Câu trả lời:


74

Một trong những thay đổi trong 2.1 là Thư viện lớp Razor và danh tính mặc định nằm ở một trong những thay đổi này trong các mẫu xác thực riêng lẻ. Nếu bạn muốn có mã trong ứng dụng của mình để bạn có thể tùy chỉnh nó, bạn có thể tạo mã bằng Visual Studio hoặc với công cụ giàn giáo chung. Xem hướng dẫn này về cách thực hiện cả hai.


20
Tôi đã có thể tạo tệp cshtml không phải bộ điều khiển. Hướng dẫn không đề cập đến nó, bất kỳ ý tưởng nào về cách tạo accountController?
user1085907

6
Ah xấu của tôi .. nhà thiết kế như của nó trong tập tin phụ
user1085907

15
tại sao điều này là một cải tiến ? Nó làm cho mọi thứ trở nên phức tạp một cách không cần thiết.
liang

93

ASP.NET Core 2.1 đã giới thiệu tính năng mới gọi là thư viện lớp Razor cho phép bạn xây dựng các dạng xem và trang như một phần của thư viện có thể tái sử dụng. ASP.NET Core Identity đã được chuyển sang RCL như vậy. Bạn có thể ghi đè nó trong dự án của mình:

  1. Từ Solution Explorer , nhấp chuột phải vào dự án> Thêm > Mục mới được xếp lại .
  2. Từ ngăn bên trái của hộp thoại Thêm Scaffold , chọn Identity > ADD .
  3. Trong hộp thoại THÊM danh tính , chọn tệp bạn muốn ghi đè.
    1. Chọn bố cục nếu cần
    2. Chọn hoặc tạo lớp ngữ cảnh Dữ liệu .
  4. Nhấn THÊM .

Để biết thêm thông tin, hãy truy cập tài liệu .


1
Bạn cần phải nhấp chuột phải vào dự án không phải là giải pháp để có được những 'New Scaffolded Item .. Cám ơn những người đứng đầu lên về vấn đề này
leen3o

1
Điều này vẫn không dẫn đến trường Bộ điều khiển tài khoản nói rằng tôi đã thêm các trường tùy chỉnh, làm cách nào để nói với nó rằng tôi cần chúng trong phương thức đăng ký.
rogue39 trong

Này nếu tôi muốn ghi đè bộ điều khiển thay vì trang dao cạo thì sao? Tôi đang sử dụng SPA nên tôi không chắc liệu mình có thể ghi đè bộ điều khiển hay không
Robert Tirta

7

Giải pháp của tôi là tạo dự án với .net core 2.0, sau đó cập nhật khuôn khổ lên 2.1 và tất cả sự phụ thuộc vào phiên bản mới nhất




2

Theo như tôi được biết, mã AccountController đã được chuyển đến các trang Razor (và mã của chúng sẽ chuyển sang trạng thái) và hoạt động tốt nhất bằng cách sử dụng mặc định, vì vậy để tùy chỉnh mã, bạn có thể Scaffold (tức là tạo tệp ở đúng vị trí) từ một Net hoàn toàn mới Dự án Core 2.1 bằng cách nhấp chuột phải vào Dự án trong Visual Studio 2017 và chọn Add => New Scaffolded Item => Identity mở Hộp thoại Chọn. Chọn các trang mong muốn và bạn truy cập. Chỉ cần thay đổi các trang bạn muốn và sao chép vào cùng một vị trí trong một dự án hỗ trợ Identity vì các trang mới này sẽ tự động ghi đè các trang mặc định. Đây là cách mới để tùy chỉnh xác thực / ủy quyền bằng Identity, không chắc nhiều người có xem xét sự tiến bộ đáng kể này hay không!

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.