Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.90/41: Рейтинг темы: голосов - 41, средняя оценка - 4.90
0 / 0 / 1
Регистрация: 16.02.2015
Сообщений: 18
1
.NET 4.x

Получить имя пользователя из AD

20.02.2015, 13:16. Показов 8080. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день.

Подскажите как получить ФИО пользователя из AD или с ПК.
Пользователь на ПК под доменной УЗ.

Получить данные такого вида: Иванов Иван Иванович
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.02.2015, 13:16
Ответы с готовыми решениями:

Получить имя пользователя по IP
Уважаемые форумчане! Недавно начал изучать C# и начал писать программу для сканирования сети и...

Как получить файл C:\Users\?\AppData\test.txt если я не знаю имя пользователя
Как получить файл C:\Users\?\AppData\test.txt если я не знаю имя пользователя ...

Получить имя пользователя по IP-адресу
Возможно ли такое?

VBS как получить все данные пользователя windows, включая пароль, вводя имя нужного пользователя
Помогите пожалуйста, нужен код который будет выдавать пароль по имени пользователя на VBScript. В...

2
0 / 0 / 1
Регистрация: 16.02.2015
Сообщений: 18
12.03.2015, 10:29  [ТС] 2
Лучший ответ Сообщение было отмечено Tuso как решение

Решение

Нашел решение которое выводит ФИО из AD по логину.
Необходимо подключить System.DirectoryServices

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
private void getUser(string uLogin)
        {
            string filter = string.Format("(&(ObjectClass={0})(sAMAccountName={1}))", "person", uLogin);
            string domain = "[ВАШ_ДОМЕН]";
            string[] properties = new string[] { "fullname" };
 
            DirectoryEntry adRoot = new DirectoryEntry("LDAP://" + domain, null, null, AuthenticationTypes.Secure);
            DirectorySearcher searcher = new DirectorySearcher(adRoot);
            searcher.SearchScope = SearchScope.Subtree;
            searcher.ReferralChasing = ReferralChasingOption.All;
            searcher.PropertiesToLoad.AddRange(properties);
            searcher.Filter = filter;
 
            SearchResult result = searcher.FindOne();
            DirectoryEntry directoryEntry = result.GetDirectoryEntry();
          
            string displayName = directoryEntry.Properties["displayName"][0].ToString();
            MessageBox.Show(displayName);
        }
0
Master of Orion
Эксперт .NET
6100 / 4956 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
12.03.2015, 11:46 3
Можете воспользоваться моим классом:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
using System;
using System.Collections.Generic;
using System.DirectoryServices.AccountManagement;
using System.Linq;
 
namespace XXX.YYY.AD
{
    public class AdManager : IDisposable
    {
        private readonly object _syncRoot = new object();
        public PrincipalContext Context { get; set; }
 
        public AdManager(PrincipalContext context)
        {
            Context = context;
        }
 
        public List<UserPrincipal> GetAllUsers()
        {
            using (var principal = new UserPrincipal(Context))
            using (var search = new PrincipalSearcher(principal))
            using (var principalSearchResult = search.FindAll())
            {
                return principalSearchResult.Cast<UserPrincipal>().Where(result => result != null).ToList();
            }
        }
 
        public UserPrincipal GetUser(string name)
        {
            using (var principal = new UserPrincipal(Context) {Name = name})
            using (var search = new PrincipalSearcher(principal))
            {
                return (UserPrincipal) search.FindOne();
            }
        }
        
        public void Dispose()
        {
            if (Context != null)
                lock (_syncRoot)
                    if (Context != null)
                    {
                        Context.Dispose();
                        Context = null;
                    }
        }
    }
}
0
12.03.2015, 11:46
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.03.2015, 11:46
Помогаю со студенческими работами здесь

Получить имя пользователя в JS
Всем привет! Очень нужна помощь с получением имени пользователя для чата. Проект делал на ASP .Net...

Получить имя пользователя процесса
как получить имя пользователя процесса ?

Получить имя авторизованного пользователя
Здравствуйте,сайт на joomla 2.5,как достать имя авторизованного пользователя для своего скрипта,и...

Как получить имя пользователя
Всем привет ! В фраймворке есть файл fale-system.php &lt;?php $path=Auth::user()-&gt;name(); return...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru