Я новичок в использовании audit.net.
Мне нужно проверить ряд пользовательских значений из параметров, полученных в методе действия, следующим образом.
[AuditField("User","reqLogin.User")]
[AuditCustom(EventTypeName = "AccesoAction")]
public async Task<IActionResult> Acceso(LoginRequest reqLogin)
{
...
}
Мне нужно создать CustomField с полевым именем «Пользователь» и значением, значением атрибута «Пользователь» параметра reqLogin (reqLogin.User).
Я расширяю класс AuditAttribute, чтобы перезаписать метод OnActionExecutionAsync и добавить CustomField.
public class AuditCustomAttribute : AuditAttribute
{
public override Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
{
lock (context.ActionDescriptor.Parameters)
{
foreach (AuditFieldAttribute apa in context.ActionDescriptor.Parameters.Cast<ControllerParameterDescriptor>().First().ParameterInfo.Member.GetCustomAttributes<AuditFieldAttribute>())
{
// create CustomField and add to context
}
}
return base.OnActionExecutionAsync(context, next);
}
}
Наконец, в моем пользовательском классе AuditDataProvider я буду проверять пользовательские поля, поступившие в поле метода auditevent:
public override object InsertEvent(AuditEvent auditEvent)
Как это было бы возможно?
Спасибо