C# ASP.NET/IIS 7-使用主体对Active Directory进行身份验证
我当前的应用程序使用该类根据LDAP(更准确地说是Active Directory)对默认用户(填写在Web.config专用部分)进行身份验证: 然后,此身份验证允许搜索任何其他用户(通过C# ASP.NET/IIS 7-使用主体对Active Directory进行身份验证,c#,asp.net,iis-7,active-directory,principal,C#,Asp.net,Iis 7,Active Directory,Principal,我当前的应用程序使用该类根据LDAP(更准确地说是Active Directory)对默认用户(填写在Web.config专用部分)进行身份验证: 然后,此身份验证允许搜索任何其他用户(通过UserPrincipal.FindByIdentity(ldapContext,username))。但是我必须改变这一点,因为我的客户不接受在Web.config中清除用户。好的,我能理解:-) 因此,我有几种解决方案: 设法加密Web.config的相应部分(使用提供者等加密成员资格部分) 使用部署应
UserPrincipal.FindByIdentity(ldapContext,username)
)。但是我必须改变这一点,因为我的客户不接受在Web.config中清除用户。好的,我能理解:-)
因此,我有几种解决方案:
- 设法加密Web.config的相应部分(使用
等加密提供者
部分)成员资格
- 使用部署应用程序的IIS 7的应用程序池中的帐户。这意味着要从IIS中检索主体(我想这一点应该不那么难),然后使用它对AD进行身份验证;但是我找不到任何方法,也不是通过
类,也不是通过onePrincipalContext
非常感谢 我想你的问题不是用户名,而是密码?据我所知,第二个解决方案需要工作。我不知道该怎么做 对于第一个解决方案,您可以加密用户名和密码,并将加密值存储在字符串中。加载后,您需要解密字符串。但是,您的解决方案将不安全
您还应该考虑,如果需要高安全性实现,那么可以将加密密钥存储在安全存储中。然后你就可以反汇编了。事实上,问题是密码:我想没有办法从主体那里获得密码(基本安全性)。好的,我来看看加密。好的,谢谢!加密的一个好方法是通过IIS工具,该工具在中有详细描述。
ldapContext = new PrincipalContext(AdContextType, AdHost, AdContainer,
ContextOptions.SimpleBind,
AdDefaultUser, AdDefaultPassword)