Nhibernate / C# - 设置Nhibernate以解码SQL之前的所有文本输入?

时间:2016-09-01 19:49:31

标签: c# nhibernate fluent-nhibernate

我正在处理的网站主要是安全数据输入,我正在使用以下工作流程:

  1. 用户输入文字
  2. JS encodeURI(text)
  3. Ajax to C#
  4. C#调用nHibernate方法
  5. nHiberate执行SQL
  6. 返回C#
  7. 返回JS
  8. JS decodeURI
  9. 我想知道是否可以将nHibernate设置为在将所有文本字段发送到SQL之前对其进行解码,而无需手动解码每个文本字段。我想这样做是因为我在SQL中生成的报告包含编码并且不可读。

    同样,我正在寻找某种全局设置,让nHiberate在将所有文本字段发送到SQL之前对其进行解码。

    或者也许是在生成报告之前解码的方法?

    有没有人有任何想法?

1 个答案:

答案 0 :(得分:1)

您可以在设置/获取属性时创建编码/解码的自定义类型。您需要从IUserType派生并使用NHibernate注册您的类型。这是一个加密字符串

的例子

https://gist.github.com/jasondentler/1170933#file-encryptedstring-cs

或者你可以编写EventListeners并在那里进行编码/解码。

以下是有关EventListeners的文档

http://nhibernate.info/doc/nhibernate-reference/events.html

如果我是你,我会沿着自定义类型路线前进。它维护的代码较少,而且更符合您的需求。