主要用到的表
AbpUsers
AbpRoles
AbpUserRoles
AbpPermissions
目的:
用户只能看到当前角色下能看到的菜单,并且不能访问到后台Api
我是给菜单加权限,自己又加了个MenusPermissions
创建User的时候有一个
CheckErrors(await _userManager.SetRolesAsync(user, input.RoleNames));
给User绑定Roles
然后 角色和权限有关联,角色和菜单建个中间表,这样用户 菜单 就能对应好了
例如我页面有 这三个按钮,对应后面三个Api接口,首先第一层,我可以通过后台返回的菜单不显示这些按钮,但万一有特殊情况,登录人看到了这些按钮,进行了操作。这时候在后台Api 使用 AbpAuthorize 特性,例如:
[AbpAuthorize(PermissionNames.Button_Basic_Information_Equipment_Accessory_Model_New)]
public override async Task<DeviceAccessoryModelDto> CreateAsync(CreateDeviceAccessoryModelInput input)
{
await _dictionaryManager.CheckDictItemBelongToDictionary(input.DeviceAccessoryTypeId, DataDictionary.DeviceAccessoryType);
await _dictionaryManager.CheckDictItemBelongToDictionary(input.UomId, DataDictionary.Uom);
await _accessoryModelManager.CheckdeviceAccessoryModelNameDuplicateAsync(input.Name, null);
return await base.CreateAsync(input);
}
这样没有权限的人就会报401
PermissionNames 文件:
初始化创建菜单时: