在派生的 AuditDataProvider 中获取 AuditAction 的用户名 属性

Get the AuditAction's Username property in derived AuditDataProvider

我正在使用 Audit.Net 和 Audit.MVC 14.2.2.0。很棒的框架!

我已经扩展了 AuditDataProvider:

 public class SQLAuditDataProvider : AuditDataProvider

在 class 中,我想获取 auditEvent 的 Action 对象,以便我可以记录用户名。 (我不想要环境的用户名,尽管我可以得到它。) 当我调试时,我可以看到 Action 属性,但是当我尝试键入它时,我遇到编译时错误。

我可以将其作为 CustomField 存储在 HomeController 中,但最好只是将其存储在 SQLAuditDataProvider 中。

我可能在做一些愚蠢的事情,但我错过了什么?

您可以将 AuditEvent 转换为 AuditEventMvcAction,然后访问 Action 属性:

var action = (auditEvent as AuditEventMvcAction).Action;

或者您可以使用方便的扩展方法:

using Audit.Mvc;

var action = auditEvent.GetMvcAuditAction();

// Or from the audit scope
var action = auditScope.GetMvcAuditAction();