Шифрование строки подключения в файле web.config в С#
Я записал имя моей базы данных, имя пользователя и пароль в файле web.config
в качестве строки подключения.
Я хочу зашифровать эти данные. Как я могу это сделать?
<connectionStrings>
<add name="ISP_ConnectionString" connectionString="Data Source=JIGAR;
Initial Catalog=ISP;Integrated Security=True;
User ID=jigar;Password=jigar123;
providerName="System.Data.SqlClient" />
</connectionStrings>
Ответы
Ответ 1
Вы можете просто использовать инструмент apnet_regiis для этого, просто сделайте
C:\WINDOWS\Microsoft.Net\Framework(64)\(.Net version)\aspnet_regiis -pe "connectionStrings"
для конкретного приложения вы можете использовать аргумент приложения -app-app, а для определенного сайта вы также можете использовать аргумент сайта "site-site site".
Подробнее см. http://msdn.microsoft.com/en-us/library/dtkwfdky.aspx.
Обратите внимание, что это работает только для веб-приложения, а не для приложения Windows.
Также обратите внимание, что вам нужно запустить его из командной строки с повышенными привилегиями ( "запуститься как администратор" ).
Ответ 2
I одно конкретное приложение, я вызываю следующую процедуру при запуске:
Private Sub CheckConfigFile()
Dim config As System.Configuration.Configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None)
Dim sec As ConfigurationSection = config.AppSettings
If sec IsNot Nothing Then
If sec.SectionInformation.IsProtected = False Then
Debug.Write("Encrypting the application settings...")
sec.SectionInformation.ProtectSection(String.Empty)
sec.SectionInformation.ForceSave = True
config.Save(ConfigurationSaveMode.Full)
Debug.WriteLine("done!")
End If
End If
End Sub