【发布时间】:2021-08-03 18:59:07
【问题描述】:
我已经设法让索赔工作并且效果很好,但我想扩展 cliams 表以具有控制器和区域,我还想在带有复选框的编辑页面中显示角色。
目前我的索赔权限如下。
我不能通过这种方式获得每个角色的所有权限
public async Task<ActionResult> Index(string roleId)
{
var model = new PermissionViewModel();
var allPermissions = new List<RoleClaimsViewModel>();
allPermissions.GetPermissions(typeof(Permissions.Products), roleId);
var role = await _roleManager.FindByIdAsync(roleId);
model.RoleId = roleId;
var claims = await _roleManager.GetClaimsAsync(role);
var allClaimValues = allPermissions.Select(a => a.Value).ToList();
var roleClaimValues = claims.Select(a => a.Value).ToList();
var authorizedClaims = allClaimValues.Intersect(roleClaimValues).ToList();
foreach (var permission in allPermissions)
{
if (authorizedClaims.Any(a => a == permission.Value))
{
permission.Selected = true;
}
}
model.RoleClaims = allPermissions;
return View(model);
}
所以我的两个问题是如何扩展角色声明表,以及如何提供用户可以更改声明的编辑页面。他们是否有任何关于声明编辑页面的最佳实践。
【问题讨论】:
标签: c# asp.net-core asp.net-identity