Ошибка строки подключения после шифрования с использованием 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?

Другие вопросы по тегам