Series hướng dẫn sử dụng asp net Identity phần 4
Show Bài tập thực hành Lập trình Web Khoa CNTT- Trường ĐH CN TP.HCM Lab 04: LẬP TRÌNH WEB MVC5 Xây Dựng Project BigSchool Phần 1 1. MỤC TIÊU: Xây dựng giao diện người sử dụng: HTML, CSSvà sử dụng MVC5 Hướng dẫn sử dụng ASP.NET Identity ASP.NET MVC Data Validation Bảo mật trong ASP.NET MVC (CSRF). 2. Mô tả yêu cầu Project BigSchool: Xây dựng mạng xã hội quản lý và theo dõi các khóa học trực tuyến (gọi tắt là BigSchool). Webstie Mạng xã hộihọc tập BigSchool cung cấp các chức năng cơ bản: - Người học có thể dễ dàng theo dõi các khóa học của Giảng viên yêu thích. Thêm khóa học vào danh sách đăng ký tham dự. Theo dõi Giảng viên để nhận các thông tin về khóa học mới. - Người học có thể xem tất cả các khóa học sắp được mở theo giảng viên hoặc tìm kiếm theo các thông tin như tên giảng viên, chủ đề khóa học, địa điểm khóa học. - Giảng viên có thể đăng ký mở khóa học, bao gồm các thông tin ngày/ giờ, địa điểm và chủ đề của khóa học. Giảng viên có trang quản lý khóa học để có thể chỉnh sửa, cập nhật khóa học. Các yêu cầu trong phần 1 cần thực hiện Xây dựng Project MVC5 với Asp.Net Identity, Chuyển cơ sở dữ liệu sang MS SQL server Trang Đăng kí có thêm thuộc tính Name Trang Đăng kí khóa học Course Validation dữ liệu cho khóa học, Bảo mật trong Asp.Net MVC (CSRF) Trang Home hiện thị danh sách các khóa học sắp tới
Đây là bài thứ 4 trong loạt bài: Thêm cờ tính năng vào ứng dụng ASP.NET Core.
Microsoft.FeatureManagement cho phép bạn thêm các cờ tính năng vào ứng dụng ASP.NET Core được kiểm soát bởi hệ thống cấu hình. Trong bài viết trước, tôi đã giới thiệu các bộ lọc tính năng và chỉ ra cách chúng có thể được sử dụng để tạo cờ tính năng động. Tôi đã mô tả hai bộ lọc
tính năng được tích hợp sẵn trong thư viện Trong bài viết này, tôi chỉ cho bạn cách bạn có thể tạo bộ lọc tính năng tùy chỉnh của riêng mình. Ví dụ trong bài viết này tìm kiếm Claim trong ClaimsPrincipal của người dùng hiện đang đăng nhập và bật cờ tính năng nếu có. Bạn có thể sử dụng bộ lọc này để kích hoạt một tính năng cho một nhóm nhỏ người dùng của bạn. Tạo bộ lọc tùy chỉnh từ IFeatureFilterBài viết này giả định rằng bạn đã quen thuộc với các bộ lọc tính năng và thư viện Microsoft.FeatureManagement nói chung, vì vậy nếu chúng là người mới đối với bạn, tôi khuyên bạn nên đọc các bài viết trước trong loạt bài này. Tạo bộ lọc tính năng tùy chỉnh yêu cầu hai điều:
Tôi sẽ bắt đầu với lớp cài đặt bộ lọc, vì chúng ta sẽ sử dụng lớp đó bên trong bộ lọc tính năng tùy chỉnh của mình. Tạo lớp cài đặt bộ lọcĐối với ví dụ này, chúng ta muốn bật một tính năng chỉ cho những người dùng có một số xác nhận quyền sở hữu (claim) nhất định. Để đơn giản, tôi sẽ chỉ yêu cầu sự hiện diện của một loại xác nhận quyền sở hữu và bỏ qua giá trị của xác nhận quyền sở hữu, nhưng mở rộng ví dụ trong bài viết này phải đủ đơn giản. Đối tượng cài đặt chứa một loạt các loại xác nhận quyền sở hữu:
Không có gì đặc biệt về lớp cài đặt này; nó sẽ bị ràng buộc với cấu hình ứng dụng của bạn, vì vậy bạn chỉ bị hạn chế bởi các giới hạn của cấu hình ASP.NET Core / Microsoft.Extensions tiêu chuẩn. Triển khai interface IFeatureFilterĐể tạo bộ lọc tính năng, bạn phải triển khai interface
Đối số
Cần lưu ý rằng không có gì cụ thể cho ASP.NET Core ở đây - không có Tạo bộ lọc tính năng tùy chỉnhĐể triển khai bộ lọc tính năng tùy chỉnh, chúng ta cần biết người dùng hiện tại của yêu cầu là ai. Để làm như vậy, chúng ta cần truy cập vào Cách chính xác để làm điều đó (khi bạn không có quyền truy cập trực tiếp vào nó như khi bạn làm trong Controller MVC, v.v.) là sử dụng interface Bên trong class
Tôi
đã đặt tên cho bộ lọc tính năng này là "Claims" bằng cách sử dụng thuộc tính Logic của bộ lọc tương đối đơn giản - nếu Sử dụng bộ lọc tính năng tùy chỉnhĐể sử dụng bộ lọc tính năng tùy chỉnh, bạn phải đăng ký nó với hệ thống quản lý tính năng trong
Tùy thuộc vào framework và các dịch vụ của bên thứ ba mà bạn đã thêm vào ứng dụng của mình, Đó là tất cả cấu hình tùy chỉnh cần thiết để kích hoạt
và bật bộ lọc trong cấu hình bằng cách sử dụng định dạng được mô tả trong bài trước:
Lưu ý rằng tôi đã sử dụng giá trị "Claims" của Kiểm tra bộ lọc ClaimsFeatureFilterĐể kiểm tra bộ lọc tính năng, dễ nhất là bắt đầu với ứng dụng ASP.NET Core đã bật xác thực cá nhân. Với mục
đích trình diễn, tôi đã cập nhật trang chủ Index.cshtml để hiển thị banner khi cờ tính năng
Chạy lệnh di chuyển cơ sở dữ liệu cho ứng dụng bằng cách sử dụng lệnh sau:
và sau đó chạy ứng dụng của bạn và đăng ký người dùng mới. Bạn sẽ thấy trang chủ tiêu chuẩn: Banner "Beta" bị ẩn theo mặc định. Bộ lọc Để kích hoạt tính năng này, chúng ta cần thêm một xác nhận quyền sở hữu bổ sung cho người dùng. Có một số cách để thêm xác nhận quyền sở hữu cho người dùng - khi người dùng được tạo, sau đó hoặc khi họ đăng nhập. Tôi đang đi theo con đường dễ dàng ở đây và chỉ cần thêm xác nhận quyền sở hữu vào cơ sở dữ liệu theo cách thủ công. Với ASP.NET Core Identity, người dùng có thể thêm các xác nhận quyền sở hữu bổ sung tùy ý. Chúng được lưu trữ trong bảng Nếu bạn đăng xuất và sau đó đăng nhập lại (để đảm bảo xác nhận quyền sở hữu mới được nhận), banner "Beta" sẽ hiện hiển thị - bộ lọc tính năng tùy chỉnh đã hoạt động! Hạn chế của bộ lọc ClaimsFeatureFilterBộ lọc tính năng tùy chỉnh được Cố gắng truy cập
Một trong những tác động hơi nguy hiểm của điều này là người sử dụng (dev) cờ tính năng không biết tính năng nào là an toàn để truy vấn trong bối cảnh nào. Không có gì trong đoạn mã cho thấy nó có thể ném ra exception khi được sử dụng trong một background thread hoặc trong một dịch vụ được lưu trữ.
Một tùy chọn cơ bản để tránh tình huống này là sử dụng các quy ước đặt tên cho cờ đặc trưng của bạn. Ví dụ: bạn có thể sử dụng một quy ước trong đó cờ tính năng có tiền tố
Điều này ít nhất cung cấp một chỉ báo cho người gọi khi cờ được sử dụng. Rõ ràng là nó yêu cầu bạn cấu hình các cờ một cách chính xác, nhưng đó là một bước đi đúng hướng!
Tóm lượcMicrosoft.FeatureManagement cho phép sử dụng bộ lọc tính năng để thêm hành vi động vào cờ tính năng của bạn. Trong bài viết này, tôi đã chỉ ra cách triển khai interface Bộ lọc tính năng này hoạt động tốt trong ngữ cảnh của một yêu cầu (request), nhưng điều quan trọng là phải nhận thức được ý nghĩa của việc sử dụng Series: Thêm cờ tính năng vào ứng dụng ASP.NET Core Trong loạt bài này, tôi sẽ trình bày cách tạo các cờ tính năng vào ứng dụng ASP.NET Core sử dụng thư viện Microsoft.FeatureManagement. Trung NguyenNếu Comdy hữu ích và giúp bạn tiết kiệm thời gianBạn có thể vui lòng tắt trình chặn quảng cáo ❤️ để hỗ trợ chúng tôi duy trì hoạt động của trang web. ASP.NET Core • .NET Core • ASP.NET Core MVC • Lập Trình C# |