Шифрование паролей с помощью T-SQL, которые будут расшифрованы поставщиком членства ASP.NET - PullRequest
0 голосов
/ 04 марта 2011

Я уже пару недель убиваюсь из-за этого и не могу найти жизнеспособного решения.Вот мой сценарий:

У меня есть пакет DTSX, который импортирует данные пользователя из внешней базы данных.Затем он создает учетные записи пользователей и профили в локальной базе данных.Пользователи также могут быть созданы с помощью специального поставщика членства ASP.NET.Поставщик должен иметь возможность аутентифицировать пользователей обоих типов.

Все это было хорошо и здорово во время разработки, поскольку пароли хранились в виде открытого текста.Однако теперь, когда мы готовы к выпуску, формат паролей поставщика должен быть зашифрован, и поэтому пользователи, созданные с помощью DTSX, должны быть созданы с зашифрованным паролем.(Я бы предпочел, чтобы пароли были хэшированы, но требования клиента - восстановить пароли).По-видимому, реальная проблема заключается в создании зашифрованного пароля в DTSX, который будет расшифрован провайдером членства ASP.NET.

Моим первоначальным решением было заставить DTSX вызвать хранимую процедуру CLR, которая имела доступ к той же самойлогика шифрования в качестве поставщика.Я получил это работает, но наш клиент не включит интеграцию CLR.Так что это в окно.Сейчас я изучаю альтернативы.Одна из альтернатив - просто использовать встроенные методы шифрования T-SQL.Но как мне поделиться ключами, используемыми для шифрования / дешифрования?

Мой вопрос: возможно ли сгенерировать пароль в T-SQL, скажем, с помощью EncryptByKey, который также будет расшифрован моим провайдером?Это означает, что ключ в SQL должен совпадать с ключом в моей конфигурации machineKey.Я понятия не имею, возможно ли это.

Любое понимание / помощь очень ценится.

1 Ответ

1 голос
/ 05 марта 2011

почему вы не используете задачу скрипта внутри вашего dtsx для шифрования пароля пользователя?

...