C# 如何防止${aspnet request posted body}不记录敏感信息
我正在使用C# 如何防止${aspnet request posted body}不记录敏感信息,c#,logging,nlog,C#,Logging,Nlog,我正在使用${aspnet request post body}将请求主体记录在日志文件中。我面临的问题是:我想阻止${aspnet request post body}记录一些信息,例如密码和信用卡详细信息,我喜欢对它们进行屏蔽 例如,如果请求主体是 {用户名:ABC,密码:554&3} 这应该以这种格式记录 {用户名:ABC,密码:***} 请注意,我已尝试替换此问题的布局,不想使用此选项。是否有其他方法执行此任务?此${aspnet request post body}是NLog的唯一文本
${aspnet request post body}
将请求主体记录在日志文件中。我面临的问题是:我想阻止${aspnet request post body}
记录一些信息,例如密码和信用卡详细信息,我喜欢对它们进行屏蔽
例如,如果请求主体是
{用户名:ABC,密码:554&3}
这应该以这种格式记录
{用户名:ABC,密码:***}
请注意,我已尝试替换此问题的布局,不想使用此选项。是否有其他方法执行此任务?此
${aspnet request post body}
是NLog的唯一文本
因此,您有以下选项:
- replace all stuff(使用正则表达式):配置为replace all的示例:
- 编写自己的自定义布局渲染器,将主体解析为JSON并进行转换。请注意,在ASP.NET Core中读取正文可能有点棘手,请参阅。如果您有读取/转换主体的代码,则可以轻松地将其转换为NLog布局渲染器:
看使用NLog.Web.layoutRenders; //寄存器${SanitizedBody} AspNetLayoutRenderBase.Register(“SanitizedBody”,(logEventInfo,httpContext,loggingConfiguration)=>MyMethod(httpContext));
密码:“xyz”
到密码:***“
。另请参见: