如何在源代码中使用加密密码进行目录服务身份验证
本文关键字:密码 目录服务 身份验证 加密 源代码 | 更新日期: 2023-09-27 18:24:19
我写了一个程序,通过PrincipalContext读取Active Directory中用户的UserPrincipal。为此,需要对特权用户进行身份验证。目前,此身份验证的密码以明文形式保存在源代码中。出于安全原因,加密密码应保存在源代码中或其他文件中。有办法解决这个问题吗?
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;
}
(此代码片段最初取自此网站)
无论是否加密,都不希望将其存储在代码中。其中一种方法是将敏感数据转移到配置文件中,只在生产中键入密码,并在应用程序中加密该部分。
在配置文件中
<configuration>
<appSettings>
<add key="adPassword" value="this should be empty in source controll" />
</appSettings>
</configuration>
代码内
const string adPassword = ConfigurationManager.AppSettings["adPassword"];
票据
- 您想要加密配置文件部分,这样的操作通常有效
- 如果您仍然需要提交配置文件,请使用配置文件转换,并将文件作为模板提交。密码永远不会提交到源代码管理