Я написал программу, которая читает 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)
Одним из многих вариантов было бы создание вашего пользовательского алгоритма для кодирования/декодирования текста, создания DLL и вызова с помощью закодированного пароля в этой программе, поэтому он не будет быть легко для кого-то еще, чтобы расшифровать его, если они не получают исходный код для пользовательской функции. – Spidey
Почему вы не можете использовать интегрированную защиту? Это устранит необходимость использования или сохранения пароля. – rene
Вы можете поместить зашифрованные строки в файлы конфигурации, есть способы взять строки и зашифровать их после компиляции, но проще всего сделать это в файле конфигурации. [См. Эту запись в блоге] (http://weblogs.asp.net/jongalloway/encrypting-passwords-in-a-net-app-config-file) для более подробной информации. –