我有一小段代码需要提升安全权限才能运行它。
我使用SimpleImpersonation类here来包装我的代码段,我创建了一个新的非管理员用户,但我必须在代码中输入域名,用户名和密码。
using (Impersonation.LogonUser("DOMAIN", "USERNAME", "PASSWORD", LogonType.Interactive))
{
// Do stuff
}
在保持所有登录详细信息安全的同时实现此模拟的最佳方式是什么?
答案 0 :(得分:2)
您应该将安全敏感的详细信息移动到web.config
,因为配置文件支持加密。另一方面,源代码未加密。虽然它可能会被混淆,但混淆器不会改变字符串文字的内容。
幸运的是,加密web.config
的部分是标准功能。 ASP.NET IIS Registration Tool是可用于执行加密的工具。以下是描述该过程的a link to a post。以下是Microsoft对同一主题的另一篇非常有用的文章的链接:Creating and Exporting an RSA Key Container。
答案 1 :(得分:1)
在web.config中拥有该信息可能会更安全。如果您关闭了自定义错误并且该代码块中引发了错误,那么您将向公众公开您的用户名和密码,如果它在web.config中,您将避免这种情况。
另一种方法是使用salt +散列密码在成员资格表中创建用户并根据需要请求信息,这样就不会有明文凭证