(это мой первый вопрос, большое спасибо за вашу помощь в правильном определении этого вопроса и согласовании рекомендаций)
Я создаю небольшое веб-приложение на основе ядра do tnet (3.1). Для управления доступом к моим контроллерам я использую этот вид декоратора:
[Authorize(Roles = "Administrator")]
public async Task<ActionResult<Stuff>> GetStuff(){
...
У меня есть пользовательский AuthenticationHandler
, который извлекает мою роль и вводит ее в претензии.
Вся система работает как предполагалось. Например, если я выполняю вызов по этому маршруту (как администратор), я вижу это в журнале:
[12:46:59 INF] Request starting HTTP/1.1 GET http://localhost:5002/api/getstuff/
[12:46:59 INF] Authorization was successful.
Если я делаю тот же запрос без роли администратора, я получаю это:
[12:46:59 INF] Request starting HTTP/1.1 GET http://localhost:5002/api/getstuff/
[12:56:36 INF] Authorization failed.
Теперь, в целях моей проблемы, давайте добавим еще один декоратор:
[Authorize(Roles = "Administrator")]
[Authorize(Policy = "CustomAccessPolicy")]
public async Task<ActionResult<Stuff>> GetStuff(){
...
Вопрос
Вот моя проблема: если пользователь не соответствует CustomAccessPolicy
ИЛИ если он / она не является администратором, я получу такой же журнал, что является проблемой для меня.
Что я могу сделать, чтобы получить более точный журнал, такой как:
[12:46:59 INF] Request starting HTTP/1.1 GET http://localhost:5002/api/getstuff/
[12:56:36 INF] Checked Role: Administrator. Success.
[12:56:36 WRN] Check Policy CustomAccessPolicy: Failed!
[12:56:36 WRN] Authorization failed.
Как я могу получить этот точный журнал проверок политики / утверждений / авторизации?
Я считаю, что это может быть вопросом конфигурации (уровень журнала на какой-то компонент?), или, может быть, мне нужно переопределить какой-то метод / привязку к некоторым событиям?
Большое спасибо!