В настоящее время невозможно использовать атрибут Authorize
для отдельных обработчиков Razor Page, вы можете отследить запрос функции в здесь .
В качестве обходного пути вы можете ввести IAuthorizationService
и выполните авторизацию вручную:
private readonly IAuthorizationService _authorizationService;
public IndexModel(ILogger<PrivacyModel> logger, IAuthorizationService authorizationService)
{
_logger = logger;
_authorizationService = authorizationService;
}
public async Task OnGet()
{
var isAuthorized = await _authorizationService.AuthorizeAsync(
User, "PolicyName");
if (!isAuthorized.Succeeded)
{
//not pass the authorzation
}
}
И создайте политику, чтобы проверить, превышает ли заявленное возрастное требование пользователя 18 лет, как показано здесь .