Как зашифровать часть файла AppConfig в любом приложении win form? - PullRequest
2 голосов
/ 07 июля 2010

Я работаю над небольшим приложением winform. Здесь у меня есть некоторые настройки конфигурации, например Имя пользователя и пароль вроде вещи.

Теперь мое требование - я хочу зашифровать эту конкретную деталь. Так может кто-нибудь сказать мне, как это можно сделать в .NET (C #).

Ответы [ 4 ]

1 голос
/ 07 июля 2010

Вы можете использовать RsaProtectedConfigurationProvider http://msdn.microsoft.com/en-us/library/system.configuration.rsaprotectedconfigurationprovider.aspx

1 голос
/ 07 июля 2010

Вы можете зашифровать sections of your app.config, используя DPAPI provider. Поместите вашу пару username / pwd в раздел appSettings. Больше ничего не нужно менять в вашем приложении. вы все еще продолжаете читать строки appsettings как обычно. Используйте этот код ниже для шифрования / дешифрования частей вашего конфигурационного файла.

//call: ProtectSection("appSettings","DataProtectionConfigurationProvider"); 
private void ProtectSection(string sectionName, string provider) 
{ 
    Configuration config = 
        WebConfigurationManager. 
            OpenWebConfiguration(Request.ApplicationPath); 

    ConfigurationSection section = config.GetSection(sectionName); 

    if (section != null && !section.SectionInformation.IsProtected) 
    { 
        section.SectionInformation.ProtectSection(provider); 
        config.Save(); 
    } 
} 

//call: UnProtectSection("appSettings"); 
private void UnProtectSection(string sectionName) 
{ 
    Configuration config = 
        WebConfigurationManager. 
            OpenWebConfiguration(Request.ApplicationPath); 

    ConfigurationSection section = config.GetSection(sectionName); 

    if (section != null && section.SectionInformation.IsProtected) 
    { 
        section.SectionInformation.UnprotectSection(); 
        config.Save(); 
    } 
} 
0 голосов
/ 07 июля 2010

Имеется встроенная поддержка для шифрования файлов конфигурации для приложений ASP.NET с использованием Windows Data Protection API , но я никогда не пытался применить это также и к App.config.Преимущество этого заключается в том, что ключи хранятся в хранилище ключей под управлением операционной системы.

Кроме того, я не знаю никаких других встроенных решений, и мы обычно делаем расшифровку самостоятельно после чтения зашифрованныхценности.Это требует хранения ключа где-то - обычно включается в код - и это далеко от оптимального.Поэтому, если возможно, следует использовать встроенную безопасность Windows (например, аутентификация SQL Server устарела) или любую другую расширенную инфраструктуру, например Kerberos, если она доступна.

0 голосов
/ 07 июля 2010

Эта статья о проекте кода описывает, как шифровать и дешифровать строки. Это класс, который вы называете, но исходный код предоставляется, чтобы вы могли увидеть, как он работает.

В этой статье об Sharper Tutorials фактически рассматривается случай шифрования строки подключения.

К сожалению, оба слишком длинны, чтобы цитировать здесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...