2

以下网页讨论了在代码中使用模拟 (ASP.NET):http: //support.microsoft.com/kb/306158。我正在考虑为代码创建一个类,然后应用程序可以调用 impersonateValidUser 和 undoimpersonation。

我担心将用户名和密码放入我的代码中,因为任何人都可以使用 ILDASM 之类的工具看到它们。隐藏这些密码的最佳方法是什么?

该文章有一个标题为:模拟 IIS Authenticated 帐户或用户。我想过在 Web.Config 中创建一个模拟用户,但这意味着整个应用程序都作为模拟用户运行。我只希望应用程序的一小部分作为模拟用户运行 - 当需要访问和更新活动目录时。

4

1 回答 1

1

我真的很喜欢您打算只让应用程序的一部分进行 AD 更新在高特权帐户下运行。我还分享了您对将密码存储在 web.config 或代码中的担忧。

我可以为你想两个选择。

  1. 将帐户详细信息存储在 web.config 中并加密web.config的该部分。这将确保只有 Web 服务器的管理员才能获得密码。掌握 web.config 的其他人将无法理解密码。

  2. 使用 AD 更新代码创建一个小的独立 WCF 服务。然后在单独的应用程序池中运行该 WCF 服务,并将应用程序池设置为有权访问活动目录的用户的身份。为 WCF 设置一个受限的、仅限本地主机的终结点。WCF 服务应具有访问控制,仅允许来自专用帐户的访问。该帐户应设置为主网站的应用程序池的标识。

选项 1 更容易实现并且可以很好地保护密码。选项 2 为密码提供了更好的保护,因为它们根本不存储在 web.config 中 - 它们是 IIS 配置的一部分。选项 2 还增加了特权代码和系统其余部分之间的完全隔离,因为它在单独的进程中运行 AD 更新代码。有了这种隔离,就可以更轻松地对 AD 代码进行代码审查以检查安全问题。

于 2012-05-26T18:41:41.507 回答