Dec 5, 2016

ASP.NET MVC 5 Authentication Filters - Phân quyền cho action và controller 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. 

0 comments:

Post a Comment

Nam Le © 2014 - Designed by Templateism.com, Distributed By Templatelib