Я столкнулся с этой ошибкой: проверка учетных данных для членства не удалась. когда я пытаюсь войти в систему с пользователем Active Directory в приложении ASP.NET с использованием проверки подлинности на основе форм.Не удалось подтвердить учетную запись для членства
У меня есть сложный комплекс мер следующим образом:
Я использую Active Directory облегченного доступа Службы каталогов (AD LDS), он же ADAM в качестве хранилища членства. Я привязал его к Active Directory с прокси-пользователями и завершил adamsync. Я настроил SSL-сертификат для AD LDS. При подключении к AD LDS с LDP.exe, я могу подключаться/связываться с пользователями AD LDS или с пользователями AD, поэтому прокси-сервер в порядке. Приложение ASP.NET общается с AD LDS, я могу успешно войти в систему с пользователями AD LDS, используя проверку подлинности на основе форм.
Но я не могу войти в систему с моими пользователями AD с помощью приложения ASP.NET, чего я пропустил?
Heres мой провайдер Раздел из моего web.config:
<add name="MyADConnectionString"
connectionString="LDAP://localhost/OU=Users,DC=PreuveConcept,DC=local" />
<authentication mode="Forms">
<forms loginUrl="~/Account/LogOn" timeout="2880" />
</authentication>
<membership defaultProvider="AspNetActiveDirectoryMembershipProvider">
<providers>
<clear/>
<add name="AspNetActiveDirectoryMembershipProvider"
type="System.Web.Security.ActiveDirectoryMembershipProvider"
connectionStringName="MyADConnectionString"
connectionProtection="Secure"
enableSearchMethods="true"/>
</providers>
</membership>
Heres мой Войти действие (по умолчанию MVC AcountControler):
[HttpPost]
public ActionResult LogOn(LogOnModel model, string returnUrl)
{
if (ModelState.IsValid)
{
if (Membership.ValidateUser(model.UserName, model.Password))
{
FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe);
if (Url.IsLocalUrl(returnUrl) && returnUrl.Length > 1 && returnUrl.StartsWith("/")
&& !returnUrl.StartsWith("//") && !returnUrl.StartsWith("/\\"))
{
return Redirect(returnUrl);
}
else
{
return RedirectToAction("Index", "Home");
}
}
else
{
ModelState.AddModelError("", "The user name or password provided is incorrect.");
}
}
// If we got this far, something failed, redisplay form
return View(model);
}
Можете ли вы опубликовать свой код .... также вы рассмотрели вопрос о PrincipalContext ..? как вы проходите DC = CN = и т. д.?? в веб-конфигураторе или классе ASP.NET – MethodMan
Также ознакомьтесь с этим сайтом там. Щелкните ссылку ContextOptions, где указано Параметры: http://msdn.microsoft.com/en-us/library/bb300969.aspx | http://msdn.microsoft.com/en-us/library/system.directoryservices.accountmanagement.contextoptions.aspx PrincipalContext может быть вашим лучшим вариантом – MethodMan
Я не проверял PrincipalContext, так как я использую ActiveDirectoryMembershipProvider, я предположил, что он смог выполнить такую связь. – Groumy