ASP.NET MVC 5 Authentication Filters - Phân quyền cho action và controller MVC5

01:38
Chào các bạn hôm này Cường xin chia sẻ phân quyền cho MVC, phân quyền cho từng Action của Controller trong MVC5.
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.

Ok giờ thì mình đã có tất cả Acction và Controller nếu muốn thì các bạn có thể vào db để xóa bớt, cái này chỉ cần chạy một lần, tuy nhiên khi có thêm Acction hoặc Controller cần phân quyền thì chạy lại nha.

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. 

Share this

Bài viết liên quan

4 nhận xét

Write nhận xét
lúc 18:25 1 tháng 9, 2017 delete

Có Source để tham khảo ko ban?

Reply
avatar
lúc 20:47 19 tháng 9, 2017 delete

Chào a,

A có thể gửi code cho e tham khảo được không?
vongkhidau@gmail.com

Thanks

Reply
avatar
lúc 18:32 6 tháng 2, 2018 delete

Cảm ơn bạn. Bài viết rất chuyên nghiệp

Reply
avatar
lúc 09:12 16 tháng 5, 2019 delete

Code theo bạn ko chạy. Bạn có thể tách code gửi project cho mình dc ko

Reply
avatar