AD LDS ValidateCredentials в ContextType.ApplicationDirectory не может аутентифицироваться - PullRequest
2 голосов
/ 07 июля 2011

Я пытаюсь использовать 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 Ответ

7 голосов
/ 08 июля 2011

Итак, я нашел решение, которое я разместил на похожем вопросе .

Что я сделал и работает для меня, так это при вызове ValidateCredentials я немного изменил имя пользователя:

bool auth = context.ValidateCredentials(
                            String.Format("CN={0},CN=Kontrahenci,DC=TestApp,DC=loc",
                                          userName), 
                            password);

Надеюсь, это поможет.

...