我编写了一个程序,通过PrincipalContext读取Active Directory中User的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;
}
(此代码段最初取自此site)
答案 0 :(得分:0)
您不希望将其存储在加密或未加密的代码中。其中一种方法是将敏感数据转移到配置文件,仅在生产中键入密码并加密应用程序中的该部分。
在配置文件中
<configuration>
<appSettings>
<add key="adPassword" value="this should be empty in source controll" />
</appSettings>
</configuration>
代码
const string adPassword = ConfigurationManager.AppSettings["adPassword"];
注释