【问题标题】:ASP.NET / IIS 7 - Authenticate against an Active Directory using a PrincipalASP.NET / IIS 7 - 使用主体对 Active Directory 进行身份验证
【发布时间】:2011-05-10 15:51:11
【问题描述】:

我当前的应用程序使用 PrincipalContext 类针对 LDAP(更准确地说是 Active Directory)验证默认用户(填写在 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类。

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

非常感谢!!

【问题讨论】:

    标签: c# asp.net iis-7 active-directory principal


    【解决方案1】:

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

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

    您还应该考虑是否需要高安全性实施,然后您可以将加密密钥存储在安全存储中。这样你就不用拆机了。

    【讨论】:

    • 确实,问题出在密码上:我想没有办法从委托人那里获取密码(基本安全)。好的,我来看看加密。
    • 好的,谢谢!一个很好的加密方法是使用 IIS 工具,在 this other SO subject 中有详细描述。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-16
    • 2016-05-12
    • 2018-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多