Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何防止${aspnet request posted body}不记录敏感信息_C#_Logging_Nlog - Fatal编程技术网

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));
    


可以创建一个高级NLog LayoutRenderer,它可以解析文档(xml/json)并指定属性值的转换。例如从
密码:“xyz”
密码:***“
。另请参见: