NHibernate 抛出的异常中是否可以抑制参数值?
Can parameter values be suppressed in Exceptions thrown by NHibernate?
正如回答 ,NHibernate 在遇到 ADO 异常时包括 SQL 查询和参数值。由于数据敏感性问题,我需要编辑或抑制发送到数据库的参数值,以免它们最终出现在应用程序日志中。
有没有办法配置 NHibernate 使其不包含参数值?或者我可以覆盖的东西来实现它?
您可以使用自己的自定义方言覆盖 BuildSQLExceptionConverter
method for yielding a custom NHibernate.Exceptions.ISQLExceptionConverter
. (See its default implementation, or see examples in the test project。)
在此处删除参数值可能意味着对 [=15= 接收到的 exceptionInfo
参数的 Message
and/or Sql
属性值进行一些肮脏的黑客攻击] 方法。
目前无法阻止 NHibernate 格式化这些属性值中的 sql 参数值。
使用自定义方言通常是通过扩展您的应用程序当前使用的方言,然后使用 dialect
设置对其进行配置。
正如回答
您可以使用自己的自定义方言覆盖 BuildSQLExceptionConverter
method for yielding a custom NHibernate.Exceptions.ISQLExceptionConverter
. (See its default implementation, or see examples in the test project。)
在此处删除参数值可能意味着对 [=15= 接收到的 exceptionInfo
参数的 Message
and/or Sql
属性值进行一些肮脏的黑客攻击] 方法。
目前无法阻止 NHibernate 格式化这些属性值中的 sql 参数值。
使用自定义方言通常是通过扩展您的应用程序当前使用的方言,然后使用 dialect
设置对其进行配置。