使用LDAP时,无法与服务器建立安全连接

时间:2014-01-20 03:01:11

标签: asp.net asp.net-mvc active-directory ldap

我正在开发一个asp.net mvc web应用程序,我已将以下提供程序添加到我的asp.net web.config

<system.web>
    <membership>
      <providers>
        <add name="TestDomain1ADMembershipProvider" type="System.Web.Security.ActiveDirectoryMembershipProvider,System.Web, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a,Version=4.0.0.0" connectionStringName="TestDomain1ConnectionString" connectionUsername="ad-domainA.intra\it360ad.user" connectionPassword="$$$$$3" />

      </providers>
    </membership>

&安培;

<add name="TestDomain1ConnectionString" 
     connectionString="LDAP://10.211.12.30.ad-domainA.intra/CN=Users,DC=ad-domainA,DC=intra" />

但是当用户尝试访问应用程序并输入用户名和密码时,这将引发以下异常:

  

无法与服务器建立安全连接

那么可能是什么问题?并且正如我所做的那样在连接字符串中包含我的服务器IP地址是正确的吗?

修改

我将设置更改为:

 <system.web>
        <trust level="Full" originUrl="" />
        <membership>
          <providers>
            <add name="TestDomain1ADMembershipProvider" type="System.Web.Security.ActiveDirectoryMembershipProvider,System.Web, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a,Version=4.0.0.0" connectionStringName="TestDomain1ConnectionString" connectionUsername="it360ad.user" connectionPassword="$$$$$" />

          </providers>
        </membership>

&安培;

  <add name="TestDomain1ConnectionString" 
       connectionString="LDAP://ad-domainA.intra/OU=TM,DC=ad-doaminA,DC=intra" />

但目前正在进行以下检查

if(domainProvider.ValidateUser(model.UserName, model.Password)
Account控制器操作方法中的

将返回

  

提供的用户名或密码不正确

[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public ActionResult Login(LoginModel model, string returnUrl)
{
   MembershipProvider domainProvider;

   domainProvider = Membership.Providers["TestDomain1ADMembershipProvider"];

   // Validate the user with the membership system.
   if (domainProvider.ValidateUser(model.UserName, model.Password))
   {
       //code goes here
   }
   else
   {
       ModelState.AddModelError("", "The user name or password provided is incorrect.");
       return View(model);
   }

你能说明为什么验证总会失败吗?

由于

1 个答案:

答案 0 :(得分:1)

尝试使用此connectionString="LDAP://10.211.12.30:389 />。我遇到了同样的问题,我发现我必须在连接字符串中删除:389之后的任何其他内容。

我不知道为什么会这样,但它对我有用.....希望这有帮助