2010-07-30 5 views
1

Во всех моих приложениях VB6 информация о соединении хранилась в зашифрованных полях в базе данных. Никто не имеет доступа к базе данных, и если бы кто-нибудь это сделал, все, что они могли увидеть, было связью зашифрованных значений.Где вы храните свои строки подключения?

Всегда был недостаток этого метода. Получение информации о соединении, требуемой с использованием жесткого кода id/password в приложении, который будет извлекать эту информацию о соединении и формировать строку.

В мире .NET я в настоящее время храню этот жесткий код id/password в файле app.exe.config. Рекомендуемый метод - зашифровать строку соединения в файле?

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

ответ

5

Read:

Encrypting Configuration Information in ASP.NET 2.0 Applications

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

Для шифрования, вы бы использовать aspnet_regiis утилиту, что-то вроде этого:

aspnet_regiis.exe -pef "connectionStrings" "C:\Inetpub\wwwroot\MySite" 

И для дешифрования - ничто не должно быть сделано, .NET обрабатывает это прозрачно для вас.

UPDATE: эти механизмы для ALL в .NET - они являются частью базовой инфраструктуры .NET. Вы можете использовать эти методы и рецепты для консольного приложения или службы Windows. Microsoft предоставляет инструментарий для случая ASP.NET для шифрования разделов web.config - но API и вызовы для всех могут использоваться в любом виде .NET-приложения - сделали это сами, в чем-либо из консольного приложения, до службы Windows.

У меня есть small utility on my SkyDrive, который поставляется с полным источником .NET, который показывает вам, как шифровать любой раздел любого конфигурационного файла .NET. Не стесняйтесь проверить это и использовать его в своих начинаниях любым способом, который вам подходит.

+0

Почему все голосуют за это? OP даже не работает на ASP.NET! –

+0

Я думаю, если кто-то отвечает, а его репутация составляет более 50 тыс., Он должен быть гением, который всегда прав ...? Это не удар в marc_s; Я вижу, что это происходит все время здесь, и это наносит ущерб ценности сообщества. Он должен остановиться. –

+0

Marc_S, Я работаю над клиентским приложением. Ничего общего с ASP.NET. По внешнему виду утилиты выглядит так, что это будет работать с IIS. – abhi

Смежные вопросы