Chức năng phân quyền này mình dựa trên phần quyền của AspNet
Đầu tiên các bạn cần chuẩn bị DB (mình phân tích thì sử dụng các bảng sau)
Sau đó các bạn tạo lớp AuthAttribute.cs trong phần Models (ở đâu cũng được)
Lớp này để kiểm tra phân quyền tại các Controller nó giống Authorize
Sau đó bạn viết bổ sung function IsAuthenticated(this IIdentity identity, AuthenticationChallengeContext filterContext) function này dùng để kiểm tra User đăng nhập có quyền truy cập vào Action đang request tới hay không.
Mình tạo thêm lớp ControllerModel.cs để tiện cho việc truyền dữ liệu từ action qua view.
Tạo action GetController() trong RolesController.cs action này dùng để lấy tất cả những action của MVC. Hiện tại thì cái này đang lấy lên hết tất cả, mọi người có phương pháp nào lấy được theo Areas thì chia sẻ dưới comment nha. Thanks!
Tạo view cho action này, khi chạy view này xong thì dữ liệu sẽ được lưu xuống DB.
Mình tạo thêm lớp AddController trong RolesController.cs để xét Action cho từng phân quyền của chúng ta.
View của AddController
Đây là giao diện khi hoàn thành.
Và cuối cùng chúng ta thụ hường thành quả của mình bằng cách add [AuthAttribute] vào các Controller bạn muốn phân quyền.
OK Cảm ơn các bạn đã xem bài viết. Nếu các bạn có ý kiến hay góp ý cho chức năng tốt hơn xin vui lòng để lại comment.
4 nhận xét
Write nhận xétCó Source để tham khảo ko ban?
ReplyChào a,
ReplyA có thể gửi code cho e tham khảo được không?
vongkhidau@gmail.com
Thanks
Cảm ơn bạn. Bài viết rất chuyên nghiệp
ReplyCode theo bạn ko chạy. Bạn có thể tách code gửi project cho mình dc ko
ReplyEmoticonEmoticon