Удалите roleClaims одним выстрелом Query asp.net Core
Я использую ядро asp.net RoleManager для выполнения авторизации на основе roleClaim(разрешение). Приведенный ниже код работает нормально, но выполнение занимает слишком много времени, потому что я удаляю каждый ролевой запрос за раз. но я хочу удалить ролевой заявки (разрешение) на один выстрел запрос на удаление, кто-нибудь может мне помочь? заранее спасибо.
// мой код контроллера
public async Task<IActionResult> SaveRolePermission([FromBody] RoleClaimVM model)
{
try
{
if (string.IsNullOrEmpty(model.RoleId) || model.ClaimValues.Length <= 0) return Json(new { status = false });
var role = await _roleManager.FindByIdAsync(model.RoleId);
if (role == null) return null;
var roleClaims = _roleManager.GetClaimsAsync(role).Result.ToList();
if (roleClaims.Any())
{
foreach (var item in roleClaims)
{
await _roleManager.RemoveClaimAsync(role, item);
}
}
foreach (var item in model.ClaimValues)
{
await _roleManager.AddClaimAsync(role, new Claim(CustomClaimtypes.Permission, item.ToLower()));
}
return Json(new { status = true });
}
catch (Exception)
{
return Json(new { status = false });
}
}