У меня есть некоторые конфиденциальные данные, которые я хочу сохранить зашифрованными в db и расшифровать их на лету в коде. Поскольку это существующее приложение, я хотел бы, чтобы процесс шифрования/дешифрования выполнялся как можно ниже в конвейере, поэтому мне не нужно изменять уровень моих услуг. Мое первое решение заключалось в внесении изменений в getters и seters для выбранных свойств, чтобы запустить их через мой помощник шифрования. Тогда я подумал, что было бы неплохо иметь это завернутое в атрибут. Найдено Post Sharp расширение, которое могло бы это сделать, но, похоже, это перебор для этого сценария. Есть ли другие альтернативы для достижения того, что я хочу сделать?Альтернатива переопределению геттеров и сеттеров
2
A
ответ
1
В зависимости от того, как вы используете EF, вы можете создать оболочку поверх EF DbContext, общего хранилища, в которое вы могли бы добавить некоторые крючки (перехватчики).
Один из этих перехватчиков было бы что-то вроде ICryptographyInterceptor, который будет заниматься вопросами на основе объекта типа логики для шифрования (на вставке) или дешифрования (на извлечения), и это не будет загрязнять ваш бизнес-логики или модели, так как эти перехватчики будет справляться с этой задачей.
Существующая реализация может быть найдена here.
Если проект слишком сложен для такого рода изменений, возможно, было бы лучшим решением для преобразования объектов, возможно, ICryptographyService.
Смежные вопросы
- 1. Цель геттеров и сеттеров?
- 2. Документирование геттеров и сеттеров
- 3. Несколько геттеров и сеттеров
- 4. Создание родовых геттеров и сеттеров
- 5. Создание геттеров и сеттеров Symfony2
- 6. Шаблоны для сеттеров и геттеров
- 7. модульные испытания сеттеров и геттеров
- 8. Даунсайд статических геттеров/сеттеров
- 9. переопределение унаследованных геттеров/сеттеров
- 10. Symfony2 генерация геттеров/сеттеров
- 11. Наследование классов и использование сеттеров и геттеров
- 12. PHP OOP много сеттеров, геттеров
- 13. Избегайте внутренних геттеров/сеттеров - Игра
- 14. Тестирование TDD без геттеров/сеттеров
- 15. Невозможно перечислить свойства геттеров/сеттеров
- 16. Рекурсивная функция для геттеров/сеттеров?
- 17. Добавление геттеров/сеттеров к прототипу
- 18. Использование геттеров/сеттеров в Java
- 19. Нужна помощь с использованием сеттеров и геттеров
- 20. В чем смысл геттеров и сеттеров?
- 21. AS3 Vectors: использование геттеров и сеттеров?
- 22. Предпочтительный стиль Qt для геттеров и сеттеров
- 23. Использование родовых геттеров и сеттеров с php
- 24. Модуль узла в качестве геттеров и сеттеров
- 25. Объединение геттеров и сеттеров в gettersetters
- 26. Использование геттеров и сеттеров для отображения цвета
- 27. Ссылка на атрибут вместо геттеров и сеттеров
- 28. Альтернатива переопределению didChangeValueForKey: on NSManagedObject
- 29. Альтернатива переопределению статичности в java
- 30. В чем смысл пустых геттеров и сеттеров, и, таким образом, точка автоматического генерации геттеров и сеттеров в C#
Атрибуты - это всего лишь метаданные; они ничего не делают сами по себе. Как именно вы хотите использовать атрибуты? –
Это приложение MVC? Веб-формы? Формы Windows? –
@D Stanley Предположим, что мы будем называть Aspect Oriented Programming. Подробнее здесь http://stackoverflow.com/questions/11868881/generate-custom-setter-using-attributes – Bartosz