Задать вопрос
@GuessWh0

Как проверить атрибут в Active Directory посредством c#?

Добрый день!
Объясните в какую сторону копать, пожалуйста.
Есть у меня форма сброса пароля
e4d33ff996e944edac788074684d9e8d.jpg
где заполняются данные: имя пользователя и ИНН (ИНН написан у каждого пользователя в атрибуте employeeID в AD). Хочу что бы выполнялась проверка, если имя пользователя и ИНН совпадают - менялся пароль

<tr>
            <td>
                <table width="350" border="0" cellpadding="0" cellspacing="0">
                <tr>
                    <td width="180" align="right"><%=L_INN%></td>
                    <td width="7"></td>
                    <td align="right">
                    <input id="INN" name="INN" type="text" class="textInputField" runat="server" size="25" autocomplete="off" />
                    </td>
                </tr>
                </table>
            </td>
            </tr>
  • Вопрос задан
  • 663 просмотра
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
yarosroman
@yarosroman Куратор тега C#
C# the best
Вот у меня поиск пользователя в AD по имени. Фильтр можете составить в Active Directory Users & Computers.

SearchResultCollection adSearchResult;

            using (DirectoryEntry de = new DirectoryEntry("LDAP://esrr.oao.rzd"))
            {
                using (DirectorySearcher adSearch = new DirectorySearcher(de))
                {
                    adSearch.Filter = $"(&(objectCategory=person)(objectClass=user)(name={searchString}*)(objectCategory=person)(objectClass=user)(!userAccountControl:1.2.840.113556.1.4.803:=2))";
                    //adSearch.PropertiesToLoad.Add("displayName");
                    adSearchResult = adSearch.FindAll();

                }
            }

ну и сброс пароля
public void ResetPassword(string userDn, string password)
{
    DirectoryEntry uEntry = new DirectoryEntry(userDn);
    uEntry.Invoke("SetPassword", new object[] { password });
    uEntry.Properties["LockOutTime"].Value = 0; //unlock account

    uEntry.Close();
}


ну и все это дело в сборке System.DirectoryServices.

и вообще
https://www.codeproject.com/articles/18102/howto-a...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы