AD LDS ValidateCredentials в ContextType.ApplicationDirectory не может аутентифицироваться
Я пытаюсь использовать AD LDS для аутентификации пользователя в моем приложении MVC. Мне удалось написать некоторый код, который позволяет мне создавать / редактировать / удалять пользователей и группы, но я не могу их аутентифицировать. Вот мой пример кода:
using( var context = new PrincipalContext(ContextType.ApplicationDirectory, "Lenovo_T61-LapT",
"CN=Kontrahenci,DC=TestApp,DC=local"))
{
var userName = "avg.joe";
var email = "avg.joe@smwhr.us";
var password = "123456";
var user = new UserPrincipal(context)
{
Name = userName,
EmailAddress = email
};
user.SetPassword(password);
user.Save();
if (context.ValidateCredentials(userName , password, ContextOptions.SimpleBind))
Console.WriteLine("Hooray!");
user.Dispose();
}
К сожалению, это никогда не доходит до "Writeline", выдающего только ошибку, что либо пароль, либо имя пользователя неверны.
Я играл с ContextOptions, но без какой-либо удачи.
Есть идеи?
1 ответ
Решение
Итак, я нашел решение, которое я разместил на похожем вопросе.
Что я сделал и работает для меня, так это то, что при вызове ValidateCredentials я немного изменил имя пользователя:
bool auth = context.ValidateCredentials(
String.Format("CN={0},CN=Kontrahenci,DC=TestApp,DC=loc",
userName),
password);
Надеюсь это поможет.