сомнения в Active Directory с использованием C # - PullRequest
0 голосов
/ 07 ноября 2011

У меня есть веб-приложение, которое использует Active Directory. Я создаю функцию для выполнения аутентификации домена, в параметре (Пользователь, Пароль и собственный домен). В детерминированной строке отображается сообщение «Неуказанная ошибка», как показано ниже:

public bool IsAuthenticated(string domain, string username, string pwd)
    {

        string domainAndUsername = domain + @"\" + username;
        DirectoryEntry entry = new DirectoryEntry(_path, domainAndUsername, pwd);

        try
        {
            //Bind to the native AdsObject to force authentication.
           ---> This Line occurred error
             **object obj = entry.NativeObject;** 
           ---> Line Above occurred error

            DirectorySearcher search = new DirectorySearcher(entry);

            search.Filter = "(SAMAccountName=" + username + ")";
            search.PropertiesToLoad.Add("cn");
            SearchResult result = search.FindOne();

            if (null == result)
            {
                return false;
            }

            //Update the new path to the user in the directory.
            _path = result.Path;
            _filterAttribute = (string)result.Properties["cn"][0];
        }
        catch (Exception ex)
        {
            throw new Exception("Error authenticating user. " + ex.Message);
        }

        return true;
    }

1 Ответ

1 голос
/ 07 ноября 2011
using(PrincipalContext pc = new PrincipalContext(ContextType.Domain, "YOURDOMAIN"))
{
    // validate the credentials
    bool isValid = pc.ValidateCredentials("myuser", "mypassword")
}

Это, вероятно, будет работать лучше для ваших нужд.Вам нужен как минимум .NET3.5, и это то, что вы должны использовать для аутентификации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...