1

Я написал программу, которая читает UserPrincipal пользователя в нашей Active Directory через PrincipalContext. Для этого требуется аутентификация привилегированного пользователя. В настоящий момент пароль для этой аутентификации сохраняется в виде открытого текста в исходном коде. По соображениям безопасности зашифрованный пароль следует сохранить в исходном коде или в другом файле. Есть ли способ решить эту проблему?Как использовать зашифрованный пароль в исходном коде для проверки служб каталогов

const string domain = ""; 
    const string rooOrganizationalUnit = ""; 
    const string adDomain = ""; 
    const string adUserName = ""; 
    const string adPassword = ""; 
    private static PrincipalContext GetPrincipalContext() 
    { 
     PrincipalContext principalContext; 

     principalContext = new PrincipalContext(ContextType.Domain, domain, rooOrganizationalUnit, ContextOptions.Negotiate, adUserName + "@" + adDomain, adPassword); 

     return principalContext; 
    } 

(Этот фрагмент кода изначально взяты из этого site)

+0

Одним из многих вариантов было бы создание вашего пользовательского алгоритма для кодирования/декодирования текста, создания DLL и вызова с помощью закодированного пароля в этой программе, поэтому он не будет быть легко для кого-то еще, чтобы расшифровать его, если они не получают исходный код для пользовательской функции. – Spidey

+0

Почему вы не можете использовать интегрированную защиту? Это устранит необходимость использования или сохранения пароля. – rene

+1

Вы можете поместить зашифрованные строки в файлы конфигурации, есть способы взять строки и зашифровать их после компиляции, но проще всего сделать это в файле конфигурации. [См. Эту запись в блоге] (http://weblogs.asp.net/jongalloway/encrypting-passwords-in-a-net-app-config-file) для более подробной информации. –

ответ

0

Вы не хотите, чтобы сохранить это в коде либо зашифрованной или нет. Один из подходов - перенос конфиденциальных данных в файл конфигурации, ввод паролей только в производстве и шифрование этого раздела в приложении.

В конфигурационном файле

<configuration> 
    <appSettings> 
     <add key="adPassword" value="this should be empty in source controll" /> 
    </appSettings> 
</configuration> 

В коде

const string adPassword = ConfigurationManager.AppSettings["adPassword"]; 

Notes

  • вы хотите зашифровать раздел конфигурационный файл, что-то вроде this обычно работает
  • If вам все равно нужно зафиксировать конфигурационный файл , использовать преобразование файла конфигурации и зафиксировать файл в качестве шаблона. Пароль никогда не будет привязан к источнику управления

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

  • Нет связанных вопросов^_^