Lập trình
Xác thực phân quyền sử dụng Asp.net core mvc Identity (Phần 3)
Tiếp tục thực hành website thực hiện chức năng phân quyền sử dụng Identity
a) Tìm hiểu về cơ chế xác thực và phân quyền trong ASP.NET Core MVC
ASP.NET Core MVC hỗ trợ cơ chế xác thực (authentication) và phân quyền (authorization) tích hợp sẵn, giúp bảo vệ các phần của ứng dụng khỏi truy cập trái phép.
Xác thực (Authentication): Là quá trình xác minh danh tính người dùng. Sau khi người dùng đăng nhập thành công, một cookie xác thực sẽ được tạo và sử dụng cho các lần truy cập tiếp theo.
Phân quyền (Authorization): Là quá trình kiểm tra xem người dùng đã xác thực có quyền truy cập một tài nguyên cụ thể hay không (ví dụ: chỉ admin mới được truy cập trang quản trị).
Các kỹ thuật phân quyền:
Role-based Authorization: Phân quyền dựa trên vai trò (Admin, User, Editor,...)
Policy-based Authorization: Sử dụng logic linh hoạt hơn như điều kiện theo độ tuổi, quyền hạn,...
Claims-based Authorization: Phân quyền theo các thông tin khai báo (claims) được đính kèm với người dùng.
b) Sử dụng ASP.NET Core Identity để xác thực và phân quyền
ASP.NET Core Identity là framework mặc định của .NET dùng để:
Quản lý người dùng
Xác thực (login/logout)
Quản lý vai trò, quyền
Hash mật khẩu và bảo mật tài khoản
c) Biết cấu hình ứng dụng ASP.NET Core MVC hỗ trợ xác thực và phân quyền
1. Cài đặt ASP.NET Core Identity cho dự án
− Cài đặt Microsoft.AspNetCore.Identity.EntityFrameworkCore

2. Update lớp ApplicationDbContext kế thừa IdentityDbContext: Mở tập tin
ApplicationDbContext.cs trong thư mục Models, hiệu chỉnh và bổ sung các
lệnh sau:

Tạo Migration và update CSDL
Vào Tools → NuGet Package Manager → Package Manager Console
− Nhập lệnh 2 lệnh sau:
(1) add-migration AddIdentityTable
(2) update-database
➔ Mở MS SQL Server xem kết quả CSDL đã được cập nhật lại:
3. Sinh code bằng công cụ Scaffolding
Click phải tên dự án → Add → New Scraffolded Item...
Chọn Identity → Nhấn Add

Check mục Override all files, chọn lớp ApplicationDbContext tại mục Data context class
→ Nhấn Add
4. Đăng ký sử dụng IdentityUser với services trong tập tin Startup.cs: hoặc program.cs
→ Bổ sung lệnh được đánh khối để đăng ký với service:


d) Mở tập tin _Layout.cshtml: nhúng view _LoginPartial bằng lệnh sau:

→ Test chức năng Register/Login
Chúc bạn thành công