Это неправильный подход с самого начала. Разрешения должны обрабатываться с помощью ролей или политик . Например, вместо того, чтобы устанавливать ключ в ViewData
, чтобы сказать, что пользователь может сделать A, пользователю следует назначить роль, подобную CanA
. Тогда вы можете просто проверить User.IsInRole('CanA')
.
Или, если вам нужно больше логики при принятии решения, вы можете создать обработчик политики, а затем проверить, проходит ли пользователь эту политику :
@using Microsoft.AspNetCore.Authorization
@inject IAuthorizationService AuthorizationService
...
@if ((await AuthorizationService.AuthorizeAsync(User, "CanA")).Succeeded)
{
// Show `A` stuff
}