Шифрование строки подключения в файле web.config в C # - PullRequest
19 голосов
/ 17 марта 2010

Я записал имя моей базы данных, имя пользователя и пароль в моем файле 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>

Ответы [ 2 ]

15 голосов
/ 09 декабря 2011

Вы можете просто использовать инструмент apnet_regiis, просто сделайте

C:\WINDOWS\Microsoft.Net\Framework(64)\(.Net version)\aspnet_regiis -pe "connectionStrings" 

для конкретного приложения вы можете использовать аргумент приложения -app имя приложения , а для конкретного сайта вы также можете использовать аргумент сайта "-site идентификатор сайта ".

Подробнее см. http://msdn.microsoft.com/en-us/library/dtkwfdky.aspx.

Обратите внимание, что это работает только для веб-приложения, а не для приложения Windows.

Также обратите внимание, что вы должны запускать его из командной строки с повышенными привилегиями («запуск от имени администратора»).

5 голосов
/ 17 марта 2010

В одном конкретном приложении при запуске я вызываю следующую подпрограмму:

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
...