如果不使用数据提供程序,则缺少新对象 - Audit.Net

New Object missing if not using Data Provider - Audit.Net

我注意到 AuditScope 得到了 .Event 属性,其中包含事件日志的值。所以它可以通过使用这个命令

转换为json
var Scope = AuditScope.Create("Account:Suspend", () => user);

//Change value properties on user object
//Save into database

//Retrieve eventlog from audit
var EventInJson = Scope.Event.ToJson();

所以我决定不使用CustomDataProvider,所以我这样配置Audit.Net

Audit.Core.Configuration.Setup();

但是 New ObjectTarget Object 中丢失了。样本结果

{ "EventType": "Account:Suspend", "Environment": { "UserName": "test", "MachineName": "test", "DomainName": "test", "CallingMethodName": "Account.API.Controllers.AccountController+<UpdateSuspend>d__35.MoveNext()", "AssemblyName": "Account.API, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null", "Culture": "en-MY" }, "Target": { "Type": "ApplicationUser", "Old": { "CountryId": 1, "IsDeleted": false, "IsSuspend": true, "RiskLevelId": 0, "CreationDate": "2018-10-05T04:51:32.485", "LastLoginDate": "2018-10-05T04:51:32.486", "Id": 23, "UserName": "user", "NormalizedUserName": "test", "Email": "test@test.com", "NormalizedEmail": "test@test.com", "EmailConfirmed": false, "SecurityStamp": "Test", "ConcurrencyStamp": "test", "PhoneNumberConfirmed": false, "TwoFactorEnabled": false, "LockoutEnd": "2018-12-18T04:15:56.2490628+00:00", "LockoutEnabled": false, "AccessFailedCount": 0 } }, "StartDate": "2019-01-08T09:35:34.8363926Z", "Duration": 0 }

是否可以在没有数据提供程序的情况下使用?

New 值缺失,因为它在范围 保存 时更新,具体取决于创建策略,它可能是在处理范围时,或者当您在 AuditScope 上显式调用 Save 方法。因此,在修改目标对象之后,在获取 auditevent 之前,您必须处理范围或调用其 Save 方法。

另请注意,像这样调用 Audit.Core.Configuration.Setup(); 不足以拥有 NULL 数据提供程序,该代码只会使用默认值 FileDataProvider。为了指定 NULL 数据提供程序,您可以执行 Audit.Core.Configuration.Setup().UseNullProvider();