我正在开发一个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);
}
你能说明为什么验证总会失败吗?
由于
答案 0 :(得分:1)
尝试使用此connectionString="LDAP://10.211.12.30:389 />
。我遇到了同样的问题,我发现我必须在连接字符串中删除:389
之后的任何其他内容。
我不知道为什么会这样,但它对我有用.....希望这有帮助