3

我当前的应用程序使用该类针对 LDAP(更准确地说是 Active Directory)对PrincipalContext默认用户(在Web.config专用部分中填写)进行身份验证:

ldapContext = new PrincipalContext(AdContextType, AdHost, AdContainer, 
                                   ContextOptions.SimpleBind,
                                   AdDefaultUser, AdDefaultPassword)

然后,此身份验证允许搜索任何其他用户(通过UserPrincipal.FindByIdentity(ldapContext, username))。但我必须改变这一点,因为我的客户不接受在Web.config中有明确的用户。好的,我可以理解:-))

所以我有几个解决方案:

  • 设法加密Web.config的相应部分(membership部分,用providers等)

  • 使用部署应用程序的 IIS 7 的应用程序池中的帐户。这意味着从 IIS 中检索一个 Principal(我想这一点应该不那么难),然后将其用于针对 AD 的身份验证;但我找不到任何方法,无论是通过PrincipalContext类还是通过类ActiveDirectoryMembershipProvider

您知道如何管理这两种解决方案中的任何一种,还是您想到其他任何解决方案?

非常感谢 !!

4

1 回答 1

2

我认为不是用户名是您的问题,而是密码?据我所知,第二个解决方案需要工作。我没有办法做到这一点。

对于第一个解决方案,您可以加密用户名和密码并将加密的值存储在字符串中。加载后,您将需要解密字符串。但是您的解决方案不适合拆卸。

您还应该考虑是否需要高安全性实施,那么您可以将加密密钥存储在安全存储中。这样你就可以避免拆卸。

于 2011-05-10T17:04:23.587 回答