我正在使用 Audit.net 来审核所有 .net core Web API 请求。我想使用全局操作过滤器来审核所有 HTTP 请求,但不想审核 HTTP GET 方法。配置 AddAuditFilter 时,我可以使用 LogActionIf 过滤器有条件地记录操作,但无法设置条件来检查此操作是否与 Http Get 相关。知道如何添加条件过滤器吗?我指的是以下配置:
mvc.AddAuditFilter(config => config
.LogActionIf(d => d.ControllerName == "Orders" && d.ActionName != "GetOrder")
.WithEventType("{verb}.{controller}.{action}")
.IncludeHeaders(ctx => !ctx.ModelState.IsValid)
.IncludeRequestBody()
.IncludeModelState()
.IncludeResponseBody(ctx => ctx.HttpContext.Response.StatusCode == 200));
最佳答案
使用以 HttpRequest
作为参数的 LogRequestIf
怎么样:
mvc.AddAuditFilter(config => config
.LogRequestIf(r => r.Method != "GET") // <-- This
.WithEventType("{verb}.{controller}.{action}")
.IncludeHeaders(ctx => !ctx.ModelState.IsValid)
.IncludeRequestBody()
.IncludeModelState()
.IncludeResponseBody(ctx => ctx.HttpContext.Response.StatusCode == 200));
关于asp.net-core-webapi - Audit.net 使用全局操作过滤器忽略 Http Get 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66562973/