我对到远程服务器Active Directory的LDAP连接非常陌生。我的系统管理员只给了我两样东西。"DC=intelchw,DC=com"我有网络管理员用户名和密码,到目前为止,我已经尝试了很多组合,但没有从网络上得到响应。
如果用户存在于Active directory中,我需要验证用户凭据,然后获取他的用户名和其他详细信息,并存储在我的ASP.NET MVC应用程序数据库中。
我的LDAP连接字符串是:
<connectionStrings>
<add name="ADConnectionString"
connectionString="LDAP://intechww.com/DC=users,DC=com" />
</connectionStrings>
其他Web.config详细信息是
<system.web>
<authentication mode="Forms">
<forms name=".ADAuthCookie" loginUrl="~/User/Verify" timeout="15" slidingExpiration="false" protection="All" />
</authentication>
<membership defaultProvider="MY_ADMembershipProvider">
<providers>
<clear />
<add name="MY_ADMembershipProvider"
type="System.Web.Security.ActiveDirectoryMembershipProvider"
connectionStringName="ADConnectionString"
attributeMapUsername="sAMAccountName"
connectionUsername="ServiceAccount"
connectionPassword="********* " />
</providers>
</membership>
</system.web>
我的C#控制器方法是:
[HttpPost]
public ActionResult Verify(User model)
{
if (Membership.ValidateUser(model.username, model.password))
{
FormsAuthentication.SetAuthCookie(model.username, true);
}
else
{
ModelState.AddModelError("", "The user name or password provided is incorrect");
}
return View();
}
DC=
部分是构成LDAP名称的域组件。
因此,考虑到您收到的输入,我会尝试以下连接字符串:
LDAP://intechww.com/DC=intechww,DC=com
这将连接到域的根。
或者:
LDAP://intechww.com/CN=Users,DC=intechww,DC=com
这将连接到域的默认Users
容器。
查看Sysinternal AD Explorer,这是一个非常宝贵的工具,可以窥探您的AD内部,了解其中的各个部分(以及LDAP URL是如何寻址的(。