asp.net-core-webapi - Audit.net 使用全局操作过滤器忽略 Http Get 方法

标签 asp.net-core-webapi audit.net

我正在使用 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/

相关文章:

asp.net-core-mvc - 在 IIS 上部署 .Net Core WebAPI 项目

c# - 无法在 .Net Core 3.1 中的 Web Api 中使用 Cors

c# - 无法访问 Azure 上发布的 Web api

asp.net-core - 如何将事件记录到 ASP.NET Core Web API 中的事件查看器?

sqlite - Audit.net 数据模型示例

entity-framework-core-2.1 - 通过迁移创建动态审计表

c# - 无法将整数集合发送到 Web Core Api Post 方法,它被设置为 null

c# - 从 SQL Server 查询 C# 中的 JSON

c# - Audit.Net,-即使抛出异常也需要正确的审计

entity-framework - 如何使用 Audit.Net 保存实体关系?