Авторизовать Tag Helper в Razor Pages для метода обработчика страниц - PullRequest
0 голосов
/ 18 октября 2018

У меня есть приложение Razor Pages, где я использую авторизацию на основе утверждений.Внутри моего кода я использую тег [Authorize], чтобы определить, к каким методам пользователь имеет доступ.Он отлично работает для моего класса, но не работает для моих отдельных обработчиков страниц.

После некоторых исследований кажется, что он не поддерживается для обработчиков страниц.Кто-нибудь знает обходной путь для этого?

Мой код выглядит примерно так:

[Authorize(Policy = "ListItems")]
public class LicensesModel : PageModel
{ 
    // Only user with the "ListItems" Claim can open this page
    public void OnGet()
    {
         ...
    }

    [Authorize(Policy = "DownloadItem")]
    public IActionResult OnPostDownload(string id)
    {
         // This method can always be accessed, but shouldn't
    }
}

Заранее спасибо!

1 Ответ

0 голосов
/ 18 октября 2018

Это выглядит как кандидат для пользовательского глобального фильтра: https://www.learnrazorpages.com/razor-pages/filters.

Вы создадите тот, который будет выполняться, когда выбран обработчик, и затем используйте context.HandlerMethod.MethodInfo.Name, чтобы получить имявыбранный метод обработчика.Затем вы можете выполнить проверку авторизации на основании этого.

...