C# 如何在c语言中从异常消息中剥离敏感信息#

C# 如何在c语言中从异常消息中剥离敏感信息#,c#,jwt,C#,Jwt,目前,在我们的日志记录中,我们记录异常消息如下: string.Format( "caught exception while validating token, error detail:{0}", this.exception.ToString()) 异常消息中有一些敏感信息(jwt): System.IdentityModel.Tokens.SecurityTokenValidationException: Jwt10315:签名验证失败。试过的钥匙: 'System.Ident

目前,在我们的日志记录中,我们记录异常消息如下:

string.Format(
    "caught exception while validating token, error detail:{0}", this.exception.ToString())
异常消息中有一些敏感信息(jwt):

System.IdentityModel.Tokens.SecurityTokenValidationException: Jwt10315:签名验证失败。试过的钥匙: 'System.IdentityModel.Tokens.X509AsymmetricSecurityKey System.IdentityModel.Tokens.X509AsymmetricSecurityKey System.IdentityModel.Tokens.X509AsymmetricSecurityKey'

我正在考虑解析异常消息字符串,删除敏感信息,然后记录它。使用此剥离数据创建一个新的异常对象,然后将其传递给其他API

我还有别的办法吗

我正在考虑解析异常消息字符串,删除 然后记录敏感信息

解析异常消息可能不是一件容易的事情,因为您必须处理不同的信息和消息类型。相反,我只需记录原始异常消息并抛出一个自定义异常,该异常大致描述了发生的情况:

try
{
    RunSensitiveMethod();
}
catch (SecurityTokenValidationException e)
{
    // Perhaps something fancier if needed.
    logger.Log(e);
    throw new MyCustomException("We screwed up!");
}
我正在考虑解析异常消息字符串,删除 然后记录敏感信息

解析异常消息可能不是一件容易的事情,因为您必须处理不同的信息和消息类型。相反,我只需记录原始异常消息并抛出一个自定义异常,该异常大致描述了发生的情况:

try
{
    RunSensitiveMethod();
}
catch (SecurityTokenValidationException e)
{
    // Perhaps something fancier if needed.
    logger.Log(e);
    throw new MyCustomException("We screwed up!");
}

捕获SecurityTokenValidationException上的异常,然后抛出自己类型的新自定义异常,该异常仅包含所需的信息。您仍然可以记录它,并且您将确切知道它的含义。

捕获SecurityTokenValidationException上的异常,然后抛出您自己类型的新自定义异常,该异常仅包含您想要的信息。您仍然可以记录它,并且您将知道它的确切含义。

创建您自己的异常?为什么不返回一条通用的“发生错误”消息?还是基于异常类型的一般消息?@Thomas:通过创建我自己的异常,我的意思是不是Yuval回答我在logger.Log(e)下面的问题的方式;抛出新的MyExceptionMessage(“我们搞砸了!”);这是一个(隐藏的)建议;)不要指望搬走。您不知道每种格式,并且格式可能会更改。创建您自己的异常?为什么不返回一般的“发生错误”消息?还是基于异常类型的一般消息?@Thomas:通过创建我自己的异常,我的意思是不是Yuval回答我在logger.Log(e)下面的问题的方式;抛出新的MyExceptionMessage(“我们搞砸了!”);这是一个(隐藏的)建议;)不要指望搬走。你不会知道每种格式,格式可能会改变。