Ошибка строки подключения после шифрования с использованием aspnet_regiis.exe
Я зашифровал строку подключения в своем файле web.config, используя шаги, указанные в ссылке ниже: http://www.codeproject.com/KB/database/WebFarmConnStringsNet20.aspx
Однако всякий раз, когда я вызываю мое приложение, оно выдает следующую ошибку:
Не удалось расшифровать с помощью поставщика 'CustomProvider'. Сообщение об ошибке от поставщика: Контейнер ключа RSA не может быть открыт.
Сервер, на котором я выполняю шифрование, - это 64-разрядная версия Windows Server 2003 R2 SP2. Из-за этого я назначаю ACL NT Authority\Network Service
, Тем не менее, это все еще не работает.
Надеюсь, у кого-то есть идеи, что еще мне нужно проверить, чтобы это заработало.
PS. Если бы я использовал rsa ключ по умолчанию NetFrameworkConfigurationKey
для шифрования, то строка подключения не будет иметь проблемы с доступом.
2 ответа
Ну, я нашел источник проблемы, и мальчик был смущен. В атрибуте keyContainerName я написала имя неправильно.
Это. Вот что вызвало проблему.
По-видимому, шифрование будет работать, даже если вы укажете неверное имя keyContainerName, которое, как я неправильно предположил, не удастся. Итак, после того, как я расшифровал строку подключения и повторно зашифровал ее с помощью правильного keyContainerName, он работает нормально.
Кстати, не забудьте расшифровать существующую строку подключения перед исправлением keyContainerName. Aspnet_regiis.exe будет жаловаться на плохие данные, потому что провайдер теперь другой.
Вы не забыли добавить
<configProtectedData>
на ваш web.config?