上次已经实现了菜单权限的配置,达到了不同角色的用户显示不同的菜单。但这里还有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这个控制器也是没有问题的。