【发布时间】:2019-05-30 01:26:37
【问题描述】:
我是使用 audit.net 的新手。 我需要从 action 方法中接收到的参数中审计一系列自定义值,如下所示。
[AuditField("User","reqLogin.User")]
[AuditCustom(EventTypeName = "AccesoAction")]
public async Task<IActionResult> Acceso(LoginRequest reqLogin)
{
...
}
我必须创建一个带有字段名称“用户”和值的自定义字段,参数 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 字段的 customFields:
public override object InsertEvent(AuditEvent auditEvent)
这怎么可能? 谢谢
【问题讨论】:
标签: audit.net