Cấu hình Identity trong ASP.NET Core

 9/5/2019 |  Admin   4740 lượt xem

(netcore.vn) - Cấu hình Identity trong ASP.NET Core

Trong chương này, chúng tôi sẽ cài đặt và định cấu hình khung Nhận dạng, chỉ mất một chút công việc. Nếu bạn đến Visual Studio và tạo một ứng dụng ASP.NET Core mới và bạn chọn mẫu ứng dụng web đầy đủ với xác thực được đặt thành tài khoản người dùng cá nhân, dự án mới đó sẽ bao gồm tất cả các bit của khung Nhận dạng được thiết lập cho bạn.

Cấu hình nhận dạng
Chúng tôi bắt đầu từ một dự án trống. Bây giờ chúng tôi sẽ thiết lập khung Nhận dạng từ đầu, đây là một cách tốt để tìm hiểu về tất cả các phần trong mẫu ứng dụng đầy đủ vì có thể gây nhầm lẫn nếu bạn không thực hiện theo cách chi tiết tất cả các mã.

Để bắt đầu, chúng ta sẽ cần cài đặt phần phụ thuộc, đó là Microsoft.AspNet.Identity. Chúng tôi sẽ tiến hành bằng cách cài đặt Microsoft.AspNet.Identity.EntityFramework và sau đó, triển khai khung Nhận dạng hoạt động với Khung thực thể.

Nếu chúng tôi phụ thuộc vào Danh tính.EntityFramework, gói này đã bao gồm gói Danh tính.

Nếu bạn xây dựng các cửa hàng dữ liệu của riêng mình, bạn có thể làm việc chỉ với gói Danh tính.

Khi các phụ thuộc của chúng tôi được cài đặt, chúng tôi có thể tạo một lớp Người dùng khách hàng với tất cả thông tin chúng tôi muốn lưu trữ về một người dùng.

Đối với ứng dụng này, chúng tôi sẽ kế thừa từ một lớp được cung cấp bởi khung Nhận dạng và lớp đó sẽ cung cấp cho chúng tôi tất cả các yếu tố cần thiết như thuộc tính Tên người dùng và nơi lưu trữ mật khẩu băm.

Nhận dạng ASP.NET
Chúng tôi cũng sẽ cần sửa đổi lớp FirstAppDemoDbContext của chúng tôi để kế thừa từ lớp IdentityDb của khung Nhận dạng.

IdentityDb cung cấp cho chúng tôi mọi thứ chúng tôi cần để lưu trữ dưới dạng thông tin người dùng với Entity Framework. Khi chúng tôi có lớp Người dùng và DBContext được thiết lập, chúng tôi sẽ cần định cấu hình các dịch vụ Nhận dạng vào ứng dụng bằng phương thức ConfigureService của lớp Khởi động.

Giống như khi chúng ta cần thêm các dịch vụ để hỗ trợ khung MVC, khung Nhận dạng cần các dịch vụ được thêm vào ứng dụng để hoạt động.

Các dịch vụ này bao gồm các dịch vụ như dịch vụ UserStore và SignInManager.

Chúng tôi sẽ đưa các dịch vụ đó vào bộ điều khiển của mình để tạo người dùng và phát hành cookie vào thời điểm thích hợp.

Cuối cùng, trong phương thức Cấu hình khởi động, chúng ta sẽ cần thêm phần mềm trung gian Nhận dạng.

Phần mềm trung gian này không chỉ giúp biến cookie thành nhận dạng người dùng mà còn đảm bảo rằng người dùng không nhìn thấy một trang trống với phản hồi 401.

Bây giờ chúng ta hãy làm theo các bước được đưa ra dưới đây.

Bước 1 - Chúng ta cần tiến hành bằng cách thêm một phụ thuộc vào khung Nhận dạng. Hãy để chúng tôi thêm phụ thuộc Microsoft.AspNet.Identity.EntityFramework vào tệp project.json. Điều này sẽ bao gồm tất cả các gói Nhận dạng cần thiết khác mà chúng tôi cần.

{
   "phiên bản": "1.0.0- *",
   "compilationOptions": {
      "emitEntryPoint": đúng
   },
  
   "phụ thuộc": {
      "Microsoft.AspNet.Mvc": "6.0.0-RC1-trận chung kết",
      "Microsoft.AspNet.Diagnostics": "1.0.0-RC1-chung kết",
      "Microsoft.AspNet.IISPl PlatformHandler": "1.0.0-RC1-Final",
      "Microsoft.AspNet.Server.Kestrel": "1.0.0-RC1-chung kết",
      "Microsoft.AspNet.StaticFiles": "1.0.0-RC1-chung kết",
      "EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-Final",
      "EntityFramework.Commands": "7.0.0-rc1-Final",
      "Microsoft.AspNet.Mvc.TagHelpers": "6.0.0-RC1-chung kết",
      "Microsoft.AspNet.Identity.EntityFramework": "3.0.0-rc1-Final"
   },
   
   "lệnh": {
      "web": "Microsoft.AspNet.Server.Kestrel",
      "ef": "EntityFramework.Commands"
   },
  
   "khung": {
      "dnx451": {},
      "dnxcore50": {}
   },
   
   "loại trừ": [
      "wwwroot",
      "node_modules"
   ],
    
   "PublishExclude": [
      "**.người dùng",
      "**. vspscc"
   ]
}
Bước 2 - Lưu tệp này. Visual Studio khôi phục các gói và bây giờ, chúng ta có thể thêm lớp Người dùng. Hãy để chúng tôi thêm lớp Người dùng bằng cách nhấp chuột phải vào thư mục Mô hình và chọn Thêm → Lớp.

Tùy chọn mã và lớp
Gọi người dùng lớp này và bấm vào nút Thêm như trong ảnh chụp màn hình ở trên. Trong lớp này, bạn có thể thêm thuộc tính để chứa bất kỳ thông tin nào bạn muốn lưu trữ về người dùng.

Bước 3 - Chúng ta hãy lấy lớp Người dùng từ một lớp được cung cấp bởi khung Nhận dạng. Đó là lớp IdentityUser nằm trong không gian tên Identity.EntityFramework.

sử dụng Microsoft.AspNet.Identity.EntityFramework;

sử dụng hệ thống;
sử dụng System.Collections.Generic;
sử dụng System.Linq;
sử dụng System.Threading.T Nhiệm vụ;

không gian tên FirstAppDemo.Models {
   lớp người dùng: IdentityUser {
   }
}
Bước 4− Bây giờ chúng ta hãy truy cập vào IdentityUser, đặt con trỏ vào biểu tượng đó và nhấn F12 để xem chế độ xem siêu dữ liệu của Visual Studio.

#region Hội Microsoft.AspNet.Identity.EntityFramework, Phiên bản = 3.0.0.0,

không gian tên Microsoft.AspNet.Identity.EntityFramework {
   lớp công khai Danh tính người dùng: Danh tính người dùng <chuỗi> {
      Danh tính công cộngUser ();
      công khai danh tính người dùng (chuỗi userName);
   }
}
Bước 5 - Bạn có thể thấy rằng IdentityUser là

liên quan

Tìm hiểu tất tần tật về Model Validation trong ASP.NET Core  4495

 2/23/2020

HTTP 400 Responses có gì mới trong web APIs của ASP.NET Core

Xem chi tiết 

HTTP 400 Responses có gì mới trong web APIs của ASP.NET Core  2941

 2/23/2020

HTTP 400 Responses có gì mới trong web APIs của ASP.NET Core

Xem chi tiết 

ASP.NET Core - Đăng nhập và đăng xuất  22207

 9/5/2019

Sau đây, NET Core VN xin giới thiệu 2 chức năng đăng nhập và đăng xuất trong ASP.NET Core.

Xem chi tiết 

ASP.NET Core - CRUD cho User module  5203

 9/5/2019

Sau đây, NET Core VN xin giới thiệu CRUD thông tin User trong ASP.NET Core.

Xem chi tiết 

Identity Migrations trong ASP.NET Core  3239

 9/5/2019

Sau đây, .NET Core VN xin giới thiệu về chạy migration cho Identity trong ASP.NET Core.

Xem chi tiết 

Thuộc tính Authorize trong ASP.NET Core  5691

 9/5/2019

Thuộc tính Authorize trong ASP.NET Core

Xem chi tiết 

Tổng quan về Identity trong ASP.NET Core  5827

 9/5/2019

Tổng quan về Identity trong ASP.NET Core

Xem chi tiết 

ASP.NET Core - Razor Edit Form là gì?  2640

 9/5/2019

ASP.NET Core - Razor Edit Form là gì?

Xem chi tiết 

ASP.NET Core - Razor Tag Helpers là gì?  2802

 9/5/2019

ASP.NET Core - Razor Tag Helpers là gì?

Xem chi tiết 

ASP.NET Core - Razor View Import là gì?  3305

 9/5/2019

ASP.NET Core - Razor View Import là gì?

Xem chi tiết 
Like Fanpage Để Ủng Hộ Chúng Tôi Duy Trì Website