Настройка ведения журнала аудита для служб приложений в ASP.NET Boilerplate - PullRequest
0 голосов
/ 23 октября 2018

Я пытаюсь определить, есть ли способ удалить ведение журнала аудита, который предоставляется по умолчанию в коде Boilerplate ASP.NET.

Глядя на документацию, выясняется, что удаление селектора из конфигурации аудита со следующей должно работать, но это не так.

Configuration.Auditing.Selectors.Clear()

Причина заключается, скажем, в том, что я хотел оставить аудит включенным, но хотел проводить аудит только определенных служб, а не всех служб типа IApplicationService.

Я пытался поместить вышеуказанную строку в различные модули, но все безуспешно.Все сервисные вызовы регистрируются в таблице AbpAuditLogs.

1 Ответ

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

Фон

ASP.NET Boilerplate предоставляет инфраструктуру для создания служб приложений.

Метод CreateControllersForAppServices получает сборку и преобразует все службы приложения вКонтроллеры MVC в этой сборке.

ABP определяет некоторые предварительно созданные фильтры для ASP.NET Core.Все они добавляются в все действия всех контроллеров по умолчанию.

- https://aspnetboilerplate.com/Pages/Documents/AspNet-Core

Задача

Configuration.Auditing.Selectors.Clear() ручкиэто для AuditingInterceptor, а не фильтров действий.

AbpAuditActionFilter передает defaultValue как true в _auditingHelper.ShouldSaveAudit(...).

defaultValue в конечном итоге возвращается AuditingHelper.

Обходной путь

Мы не можем легко заменить AbpAuditActionFilter, но мы можем заменить AuditingHelper:

  1. Скопируйте AuditingHelper и переименуйте его в IgnoreDefaultAuditingHelper.

  2. Измените последнюю строку AuditingHelper.ShouldSaveAudit, чтобы игнорировать defaultValue:

    public bool ShouldSaveAudit(MethodInfo methodInfo, bool defaultValue = false)
    {
        // ...
    
        return false;
        // return defaultValue;
    }
    
  3. Замените IAuditingHelper в методе PreInitialize вашего модуля:

    public override void PreInitialize()
    {
        Configuration.ReplaceService<IAuditingHelper, IgnoreDefaultAuditingHelper>();
    }
    
...