可以使用
new PrincipalContext(ContextType.Domain,null)
没有为Active Directory提供任何连接字符串。
使用ActiveDirectoryMembershipProvider
时,您必须在web.config
中提供LDAP端点。
我正在处理的网站将部署在多个网站上,我不想在每个deplyoment的web.config
中填写详细信息。
How To: Use Forms Authentication with Active Directory in Multiple Domains指定了3个(!)成员资格提供程序来处理3个域,这些令人印象深刻。但是,这篇文章是从2005年开始的,它涉及的是我所追求的不同任务。
问题:
是否可以在LDAP端点未在web.config中进行硬编码的方式中使用ActiveDirectoryMembershipProvider
?
我更愿意使用ActiveDirectoryMembershipProvider
而不是PrincipalContext
来(可能)调用ChangePassword
等。
答案 0 :(得分:1)
不,如果不指定目标LDAP服务器,则无法使用ActiveDirectoryMembershipProvider
。
必须指定连接字符串,并且字符串必须包含服务器(包含ADS_FORMAT_SERVER
)
您必须创建connectionStrings元素(ASP.NET设置架构) Web.config文件中的条目,用于标识Active Directory 要使用的服务器,Active Directory域或ADAM应用程序分区。 提供商只能在域范围或子范围内运行 在域内。
如果要支持活动目录林,并且丢失表单身份验证是一个选项,请考虑使用Windows身份验证。 Windows身份验证将使用NTLM和Kerberos在林中获取用户的身份,您仍然可以通过模拟更改用户密码。请参阅WindowsIdentity.Impersonate()
。