Я пытаюсь настроить авторизацию с помощью политик, потому что по какой-то причине ClaimsPrinciple не работает, поэтому я пытаюсь это сделать.
Моя текущая проблема заключается в том, что service
возвращается как ноль , Я пробовал UserManager<IdentityUser> UserManager = new UserManager<IdentityUser>();
, но выдает ошибку.
public class AdminRequirementHandler : AuthorizationHandler<AdminRequirement>
{
public bool Check = false;
IServiceProvider service { get; set; }
protected override async Task HandleRequirementAsync(
AuthorizationHandlerContext context,
AdminRequirement requirement)
{
var CurrentEmail = context.User.Identity.Name;
string RoleName = requirement.ToString();
await GetData(CurrentEmail, RoleName);
}
private async Task GetData(string CurrentEmail, string RoleName)
{
var UserManager = service.GetRequiredService<UserManager<IdentityUser>>();
var user = await UserManager.FindByNameAsync(CurrentEmail);
if (user != null)
{
var adminCheck = await UserManager.IsInRoleAsync(user, RoleName);
if (adminCheck == true)
{
Check = true;
}
else
{
return;
}
}
}
}
Есть идеи, как это исправить?