如何在C#中模拟时隐藏我的登录详细信息

时间:2013-12-16 11:03:46

标签: c# security impersonation

我有一小段代码需要提升安全权限才能运行它。

我使用SimpleImpersonation类here来包装我的代码段,我创建了一个新的非管理员用户,但我必须在代码中输入域名,用户名和密码。

using (Impersonation.LogonUser("DOMAIN", "USERNAME", "PASSWORD", LogonType.Interactive))
    {
        // Do stuff 
    }

在保持所有登录详细信息安全的同时实现此模拟的最佳方式是什么?

2 个答案:

答案 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 +散列密码在成员资格表中创建用户并根据需要请求信息,这样就不会有明文凭证