在 Audit.Net 中的响应 header 中缺少位置 header
Location header missing in response headers in Audit.Net
当使用 Audit.Net 时,我包括要审核的整个响应,例如响应内容、headers 和 IncludeHeaders,下面是我的配置:
mvcOptions.AddAuditFilter(a => a
.LogRequestIf(d => d.HttpContext.Request.Method != HttpMethods.Get)
.WithEventType("{verb}.{controller}.{action}")
.IncludeHeaders()
.IncludeResponseBody()
.IncludeResponseHeaders());
但我只能看到以下响应 headers。
"Headers": {
"Connection": "keep-alive",
"Content-Type": "application/json",
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate, br",
"Host": "localhost:50266",
"User-Agent": "PostmanRuntime/7.26.10",
"Content-Length": "3503",
"Postman-Token": "645b83e3-d1b6-40f8-b615-85052b614b37"
},
"ResponseHeaders": {
"Request-Context": "appId=xxxxxxx",
"Referrer-Policy": "no-referrer",
"X-Content-Type-Options": "nosniff",
"Content-Security-Policy": "default-src 'self';"
}
我的回复还包含位置 header,但在审核日志中看不到。此请求是通过 Postman 提出的,Postman 中的响应 headers 如下所示:
位置header在邮递员中清晰可见,但在审计日志中同样缺失,我在这里错过了什么?有什么指点吗?
您应该使用提供的 中间件 以获得响应 headers,因为大部分响应 headers 都添加到执行的结果过滤器中在操作过滤器之后,AuditApiGlobalFilter
是一个操作过滤器。
recommended approach 是配置 action filter 和 middleware 这样你就可以得到动作的具体信息和以及之后添加的任何信息,例如响应 headers。此外,包括 中间件 将允许审核未达到 controller/action.
的请求
所以只需将以下内容添加到您的启动中:
public void Configure(IApplicationBuilder app)
{
app.UseAuditMiddleware(_ => _
.FilterByRequest(d => d.HttpContext.Request.Method != HttpMethods.Get)
.IncludeHeaders()
.IncludeResponseBody()
.IncludeResponseHeaders()
.WithEventType("{verb}.{controller}.{action}"));
// ...
}
当使用 Audit.Net 时,我包括要审核的整个响应,例如响应内容、headers 和 IncludeHeaders,下面是我的配置:
mvcOptions.AddAuditFilter(a => a
.LogRequestIf(d => d.HttpContext.Request.Method != HttpMethods.Get)
.WithEventType("{verb}.{controller}.{action}")
.IncludeHeaders()
.IncludeResponseBody()
.IncludeResponseHeaders());
但我只能看到以下响应 headers。
"Headers": {
"Connection": "keep-alive",
"Content-Type": "application/json",
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate, br",
"Host": "localhost:50266",
"User-Agent": "PostmanRuntime/7.26.10",
"Content-Length": "3503",
"Postman-Token": "645b83e3-d1b6-40f8-b615-85052b614b37"
},
"ResponseHeaders": {
"Request-Context": "appId=xxxxxxx",
"Referrer-Policy": "no-referrer",
"X-Content-Type-Options": "nosniff",
"Content-Security-Policy": "default-src 'self';"
}
我的回复还包含位置 header,但在审核日志中看不到。此请求是通过 Postman 提出的,Postman 中的响应 headers 如下所示:
位置header在邮递员中清晰可见,但在审计日志中同样缺失,我在这里错过了什么?有什么指点吗?
您应该使用提供的 中间件 以获得响应 headers,因为大部分响应 headers 都添加到执行的结果过滤器中在操作过滤器之后,AuditApiGlobalFilter
是一个操作过滤器。
recommended approach 是配置 action filter 和 middleware 这样你就可以得到动作的具体信息和以及之后添加的任何信息,例如响应 headers。此外,包括 中间件 将允许审核未达到 controller/action.
的请求所以只需将以下内容添加到您的启动中:
public void Configure(IApplicationBuilder app)
{
app.UseAuditMiddleware(_ => _
.FilterByRequest(d => d.HttpContext.Request.Method != HttpMethods.Get)
.IncludeHeaders()
.IncludeResponseBody()
.IncludeResponseHeaders()
.WithEventType("{verb}.{controller}.{action}"));
// ...
}