Trong chương này, chúng ta sẽ thảo luận ngắn gọn về khung nhận dạng ASP.NET Core. ASP.NET Core Identity framework được sử dụng để thực hiện xác thực mẫu. Có nhiều tùy chọn để chọn để xác định người dùng của bạn, bao gồm Windows xác thực và tất cả các nhà cung cấp nhận dạng bên thứ ba như Google, Microsoft, Facebook và GitHub, v.v.
Khung Nhận dạng là một phụ thuộc khác mà chúng tôi sẽ thêm vào ứng dụng của mình trong tệp project.js.
Khung này cho phép chúng tôi thêm các tính năng nơi người dùng có thể đăng ký và đăng nhập bằng mật khẩu cục bộ.
Khung này cũng hỗ trợ xác thực hai yếu tố, nhà cung cấp nhận dạng bên thứ ba và các tính năng khác.
Chúng tôi sẽ tập trung vào các kịch bản mà người dùng có thể đăng ký và đăng nhập và đăng xuất.
Để làm điều này, chúng ta cần tạo một thực thể Người dùng và lớp này sẽ kế thừa từ một lớp cơ sở trong khung Nhận dạng và lớp cơ sở cung cấp cho chúng ta các thuộc tính người dùng chuẩn của chúng tôi như tên người dùng và địa chỉ email.
Tổng quan về danh tính
Chúng tôi có thể bao gồm nhiều thuộc tính bổ sung như chúng tôi muốn trên lớp này để lưu trữ thông tin về người dùng của chúng tôi.
Chúng ta cần lấy lớp Người dùng này và cắm nó vào lớp UserStore được cung cấp bởi khung Nhận dạng.
UserStore là lớp mà mã của chúng tôi sẽ nói để tạo người dùng và xác thực mật khẩu người dùng.
Cuối cùng, một UserStore sẽ nói chuyện với cơ sở dữ liệu. Khung nhận dạng hỗ trợ Khung thực thể và tất cả các cơ sở dữ liệu có thể hoạt động với Khung thực thể.
Nhưng bạn có thể triển khai UserStore của riêng mình để làm việc với bất kỳ nguồn dữ liệu nào.
Để làm việc với Entity Framework đúng cách, lớp Người dùng của chúng tôi cũng sẽ cắm vào một lớp IdentityDb.
Đây là một lớp sử dụng DBContext Entity Framework để thực hiện công việc cơ sở dữ liệu thực tế.
Chúng ta sẽ cần đưa IdentityDb này vào ứng dụng của mình bằng cách sử dụng lớp DataContext hiện có của chúng ta từ IdentityDb thay vì DBContext của Entity Framework.
Đó là IdentityDb và UserStore phối hợp với nhau để lưu trữ thông tin người dùng và xác thực mật khẩu người dùng, mật khẩu băm có trong cơ sở dữ liệu.
Có hai phần của Khung nhận dạng ASP.NET Core mà chúng ta cần biết
Khung nhận dạng cốt lõi
Đăng nhập
Đây là một trong hai phần của khung Nhận dạng -
Như tên ngụ ý, SignInManager có thể đăng nhập người dùng sau khi chúng tôi xác thực mật khẩu.
Chúng tôi cũng có thể sử dụng trình quản lý này để đăng xuất người dùng.
Với xác thực mẫu, đăng nhập và đăng xuất được thực hiện bằng cách quản lý cookie.
Khi chúng tôi yêu cầu SignInManager đăng nhập người dùng, người quản lý sẽ phát cookie cho trình duyệt của người dùng và trình duyệt sẽ gửi cookie này cho mỗi yêu cầu tiếp theo. Nó giúp chúng tôi xác định người dùng đó.
Middleware nhận dạng
Đây là phần thứ hai của khung -
Đọc cookie được gửi bởi SignInManager và xác định người dùng, điều này xảy ra trong phần cuối cùng của khung, Middleware Middleware.
Chúng tôi sẽ cần định cấu hình phần mềm trung gian này vào đường ống ứng dụng của chúng tôi để xử lý cookie do SignInManager đặt. Chúng ta cũng sẽ thấy một số tính năng khác của phần mềm trung gian này trong một vài chương tiếp theo.