Как вы получаете информацию о пользователе из настроек домена / сети компании в C #? - PullRequest
2 голосов
/ 14 января 2011

Мне сказали, что информация о пользователе, такая как имя, адрес, телефон и т. Д., Хранится в сети (очевидно, только если человек дал эту информацию).Это информация, которую Outlook получает при поиске пользователей в сети (информация, которой Outlook заполняет карточку контакта).Это, очевидно, работает, потому что я могу искать любого в сети моей компании и получать результаты для людей со всего мира, которые находятся в нашей сети.

Программа, над которой я работаю, является внутренней для нашей компании и одной из моихЗадача состоит в том, чтобы предварительно заполнить форму этой информацией.

Мой вопрос: как мне получить эту информацию?Где это хранится?Какой объект я использую, чтобы получить его?

РЕДАКТИРОВАТЬ: Я был немного общего в этом.Что мне действительно нужно, так это информация о текущем пользователе («текущим» является тот, кто вошел в систему на компьютере и использует мою программу).Каков наилучший способ получить его?

Ответы [ 4 ]

4 голосов
/ 14 января 2011

Для чтения из Active Directory необходимые классы находятся в System.DirectoryServices.dll.Важными из них являются DirectorySearcher и DirectoryEntry.Посмотрите первые 2 ответа на этот другой вопрос, чтобы получить больше кода: Как получить подробности Active Directory текущего пользователя в C #

Обновление: Вполучить информацию о текущем пользователе, взять его имя для входа и затем выполнить поиск в Active Directory для пользователя с таким же идентификатором пользователя.Примерно так:

adSearch.Filter = "(sAMAccountName =" + Environment.UserName + ")";

(В ASP.Net вы получите пользователяимя в другом месте.)

3 голосов
/ 14 января 2011

Если вы используете Active Directory, вы можете запросить эту информацию оттуда, указав домен и имя пользователя.Это в основном хранилище LDAP, но в Интернете есть тонны информации о том, как его реализовать.

Вот еще один вопрос, который конкретно спрашивает, как извлечь эту информацию из Active Directory:

Как получить данные Active Directory текущего пользователя в C #

В настольном приложении для получения текущего имени пользователя Windows, вошедшего в систему, вы можете использовать Environment.UserName.

0 голосов
/ 29 апреля 2011

Чтобы ответить на ваш вопрос «есть ли способ получить текущий контроллер домена ...», один из способов, который мне помог, - это использовать команду nltest [1], например:

C:\>nltest /dsgetdc:yourdomain.com

Он должен выводить все виды полезных вещей.

[1] http://support.microsoft.com/kb/247811

0 голосов
/ 14 января 2011

Еще один совет, чтобы ответить вместе с ответами Дэвида и Нила Барнвелла:

Вы можете получить их ID, используя HttpContext.Current.User.Identity.Name.

Если вы хотите использовать это из сборки или другого внутреннего кода, обязательно добавьте using System.Web.

...