上次已經實現了菜單權限的配置,達到了不同角色的用戶顯示不同的菜單。但這里還有BUG,如果你直接訪問
http://localhost:8019/Mpa/Test這個控制器時,並使用"Default"租戶管理員登錄,雖然菜單看不到,但卻能顯示出頁面內容。這就存在一個安全隱患。現在來對這個控制器進行權限控制。
1.打開TestController.cs
【..\MyCompanyName.AbpZeroTemplate.Web\Areas\Mpa\Controllers\TestController.cs】
控制器上面加入注解,如下代碼:
[AbpMvcAuthorize(AppPermissions.Pages_Administration_Test)] public class TestController : Controller { // GET: Mpa/Test public ActionResult Index() { return View(); } }
2.生成項目
生成項目,訪問
http://localhost:8019/Mpa/Test這個控制器,並使用"Default"租戶管理員登錄,這時會發現系統一直登錄不了,因為我沒有給"Default"租戶中的管理員分配"測試"這個權限,所以系統判斷"Default"租戶中的管理員沒有"測試"這個權限時,跳轉再次要求登錄。
3.分配權限
現在讓"Default"租戶中的管理員也擁有"測試"權限,訪問
http://localhost:8019/Mpa,並用"Default"租戶管理員登錄,切換到角色功能,修改Admin角色,勾選上"測試"權限,保存刷新頁面,現在可以看到菜單了。再次訪問
http://localhost:8019/Mpa/Test這個控制器也是沒有問題的。