首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Audit.net Audit.MVC输出到json而不是json文件

Audit.net Audit.MVC输出到json而不是json文件
EN

Stack Overflow用户
提问于 2018-02-20 15:53:45
回答 1查看 1.3K关注 0票数 2

嘿,这都是我第一次使用thepirat000 Audit.MVC包,我的底座已经关闭,工作也很好:

代码语言:javascript
复制
[Audit(EventTypeName = "InsertOrderAction", IncludeHeaders = true, IncludeModel = true)]
public ActionResult Index()
{
     var auditScope = this.GetCurrentAuditScope();

     auditScope.Comment("New comment from controller");
     auditScope.SetCustomField("TestField", Guid.NewGuid());

     return View();
}

它输出到一个.json文件,如下所示:

代码语言:javascript
复制
{
  "EventType": "InsertOrderAction",
  "Environment": {
    "UserName": "XXXXXXX",
    "MachineName": "XXXXXXX",
    "DomainName": "XXXXX",
    "CallingMethodName": "auditing.Controllers.HomeController.Index()",
    "AssemblyName": "auditing, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null",
    "Culture": "en-US"
  },
  "Comments": [
    "New comment from controller"
  ],
  "StartDate": "2018-02-20T10:32:16.7258207-05:00",
  "EndDate": "2018-02-20T10:33:29.1468164-05:00",
  "Duration": 72421,
  "Action": {
    "HttpMethod": "GET",
    "ControllerName": "Home",
    "ActionName": "Index",
    "ViewName": "Index",
    "ViewPath": "~/Views/Home/Index.cshtml",
    "FormVariables": {},
    "ActionParameters": {},
    "UserName": "XXXX\\XXXXXXX",
    "RequestUrl": "/",
    "IpAddress": "127.0.0.1",
    "ResponseStatus": "200 OK",
    "ResponseStatusCode": 200,
    "Headers": {
      "Connection": "Keep-Alive",
      "Accept": "text/html, application/xhtml+xml, image/jxr, */*",
      "Accept-Encoding": "gzip, deflate",
      "Accept-Language": "en-US",
      "Authorization": "Negotiate oXcwdaADCgEBoloEWE5UTE1TU1AAAwAABBBBBBBBBAAAAAAAFgAAAAAAAAAWAAAAAAAAABYAAAAAAAAAFgAAAAAAAAAWAAAABXCiOIKADk4AAAA23456MS6IHLJk6i4sy2WPK09876QAAANlIQpc8OcBaAAAAAA==",
      "Cookie": "ai_user=PLRK2|2018-01-30T21:02:46.862Z",
      "Host": "localhost:29772",
      "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko"
    },
    "ModelStateValid": true
  },
  "TestField": "c457b3a2-ff2f-460e-a6ed-c2d83904da07"
}

上面的函数将一个.json文件输出到IIS目录中。但是,我想要做的是,而不是输出到文件,只输出到代码中的字符串(或json对象),允许我自己手动将这些信息放在另一个区域(或数据库)中。

有人知道怎么做吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-20 16:05:50

您可以创建自己的AuditDataProvider:

代码语言:javascript
复制
public class MyCustomDataProvider : AuditDataProvider
{
    public override object InsertEvent(AuditEvent auditEvent)
    {
        return auditEvent.ToJson();
    }
}

与返回auditEvent.ToJson()不同,您可以将其存储在内存缓存中或任何适合您的地方。

在配置中设置此提供程序:

代码语言:javascript
复制
Audit.Core.Configuration.DataProvider = new MyCustomDataProvider();

将这一行放在Global.asax中的Start_Application事件中。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48889198

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档