ProKiLL
@ProKiLL
Системный администратор

Как авторизоваться в Active Directory C# winforms?

Добрый день!

Есть самописная СЭД (C# winforms) необходимо организовать авторизацию через AD.

Вопрос:
Как реализовать?
Из AD необходимо извлечь следующую информацию:
  • Логин
  • Фамилия Имя Отчество
  • Пароль (по возможности)
  • Группы в которых он(пользователь) находиться
Просьба:
Подтолкнуть на русскоязычные источники на данную тематику
  • Вопрос задан
  • 3921 просмотр
Пригласить эксперта
Ответы на вопрос 2
Nipheris
@Nipheris Куратор тега C#
System.DirectoryServices.AccountManagement - более подходящего для вашей задачи набора классов не найти. Статья с автопереводом, поэтому если совсем ничего не понятно, берите этот неймспейс и вбиваете в гугл. Советую как можно быстрее начать исправлять потребность в русскоязычных источниках.
Ответ написан
Комментировать
Neuroware
@Neuroware
Программист в свободное от работы время
Вот мой пример подобного от одного старого проекта, возвращает ФИО, по логину в AD:
private const string Domain = "<b>DOMAINNAME</b>";
static readonly DirectoryEntry Entry = new DirectoryEntry("LDAP://" + Domain);
static readonly DirectorySearcher Dsearch = new DirectorySearcher(Entry);
static SearchResultCollection _sResultSetCol;
public string GetAdFIOfromLogin(string fio)
        {
            try
            {
                fio = fio;
                Dsearch.Filter = "(&(<b>samaccountname</b>=" + fio + "))";
                _sResultSetCol = Dsearch.FindAll();
                try
                {
                    foreach (SearchResult sResultSet in _sResultSetCol)
                    {
                        if (GetProperty(sResultSet, "samaccountname") == fio)
                        {
                            return GetProperty(sResultSet, "<b>name</b>");
                        }
                    }
                }
                catch (Exception e)
                {

                    return e.Message;
                }
            }
            catch (Exception e)
            {
                return e.Message;
            }
            return "";
        }


Вот названия полей:
submissioncontlength
logoncount
cn
msexchuseraccountcontrol
msexchrbacpolicylink
streetaddress
msexchpoliciesincluded
info
company
postalcode
adspath
userprincipalname
instancetype
st
physicaldeliveryofficename
msexchtextmessagingstate
showinaddressbook
otherpager
samaccountname
manager
msexchrecipientdisplaytype
distinguishedname
memberof
msexchelcmailboxflags
objectcategory
mailnickname
legacyexchangedn
objectclass
proxyaddresses
msexchalobjectversion
samaccounttype
homemdb
msexchhomeservername
telephonenumber
initials
countrycode
delivcontlength
co
publicdelegatesbl
givenname
name
msexchmailboxtemplatelink
l
badpwdcount
department
displayname
textencodedoraddress
useraccountcontrol
homemta
c
msexchuserculture
mail
title
primarygroupid
codepage
sn
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы