2016-09-01 11 views
0

На сайте я работаю в основном безопасный ввод данных, и я использую следующий рабочий процесс:Nhibernate/C# - Установить Nhibernate для декодирования всех текстовых входов до SQL?

  1. пользователь вводит текст
  2. JS encodeURI (текст)
  3. Ajax для C#
  4. C# называет NHibernate метод
  5. nHiberate выполняет SQL
  6. возвращается к C#
  7. возвращается в JS
  8. JS decodeURI

мне интересно, если это возможно, чтобы установить NHibernate декодировать все текстовые поля перед отправкой их в SQL без необходимости вручную декодировать каждое текстовое поле. Я хотел бы сделать это, потому что отчеты, которые я генерирую в SQL, содержат кодировку и нечитаемы.

Опять же, я ищу какую-то глобальную настройку для nHiberate для декодирования всех текстовых полей перед отправкой их на SQL.

Или, возможно, способ декодирования перед генерированием отчета?

У кого-нибудь есть идеи?

+0

Это вообще не имеет дело с sq-server, поэтому я удалил тег. пожалуйста, используйте теги правильно – FLICKER

ответ

1

Вы можете создать пользовательский тип, который кодирует/декодирует, когда вы устанавливаете/получаете свойство. Вам нужно будет извлечь из IUserType и зарегистрировать свой тип с помощью NHibernate. Вот пример собственного зашифрованной строки

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

В качестве альтернативы вы можете написать EventListeners и сделать свое кодирование/декодирование там.

Вот документация по EventListeners

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

Если бы я тебя, я бы пойти вниз маршрут пользовательского типа. Это меньше кода для поддержки и больше того, что вы ищете.

+0

Точно, что мне нужно! –