Как подключиться к домену Active Directory и проверить, в каких группах текущий пользователь - C#

Узнай цену своей работы

Формулировка задачи:

Снова привет! Не подскажете как на .НЕТ подключиться к домену Active Directory, в котором я авторизировался при входе в Windows и проверить там в каких группах мой текущий пользователь? Желательно, чтобы именно пользователь не вбивал внутри монго приложения снова логин, пароль и домен, а автоматически запросить эту информацию у Windows, ну а проверить в каких группах пользак я думаю и сам смогу если что разобраться, на PHP даже такое делал.

Решение задачи: «Как подключиться к домену Active Directory и проверить, в каких группах текущий пользователь»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.DirectoryServices;
using System.Collections;
using System.Data.SqlClient;
using System.Data;
using System.Text.RegularExpressions;
 
namespace ADTest
{
    class Program
    {
        
 
        static void Main(string[] args)
        {
            try
            {
                string sAMAccountName;
                string sn;
                string givenName;
                string displayName;
                string l;
                string streetAddress;
                string co;
                string mail;
                string wWWHomePage;
                string mobile;
                string homePhone;
                string employeeID;
                string title;
                string company;
                string department;
                string phone;
                string ou;
 
                DirectoryEntry de = new DirectoryEntry("LDAP://DC=Home,DC=local");
                DirectorySearcher deSearch = new DirectorySearcher(de);
                deSearch.SearchScope = SearchScope.Subtree;
 
                for (int i = 97; i < 97 + 26; i++)
                {
                    deSearch.Filter = "(&(objectClass=user)(objectCategory=person)(sAMAccountName=" + Convert.ToChar(i) + "*))";
                    SearchResultCollection result = deSearch.FindAll();
 
                    for (int x = 0; x < result.Count; x++)
                    {
                        sAMAccountName = Convert.ToBoolean(result[x].Properties["sAMAccountName"].Count > 0) ? result[x].Properties["sAMAccountName"][0].ToString() : "";
                        sn = Convert.ToBoolean(result[x].Properties["sn"].Count > 0) ? result[x].Properties["sn"][0].ToString() : "";
                        givenName = Convert.ToBoolean(result[x].Properties["givenName"].Count > 0) ? result[x].Properties["givenName"][0].ToString() : "";
                        displayName = Convert.ToBoolean(result[x].Properties["displayName"].Count > 0) ? result[x].Properties["displayName"][0].ToString() : "";
                        l = Convert.ToBoolean(result[x].Properties["l"].Count > 0) ? result[x].Properties["l"][0].ToString() : "";
                        streetAddress = Convert.ToBoolean(result[x].Properties["streetAddress"].Count > 0) ? result[x].Properties["streetAddress"][0].ToString() : "";
                        co = Convert.ToBoolean(result[x].Properties["co"].Count > 0) ? result[x].Properties["co"][0].ToString() : "";
                        mail = Convert.ToBoolean(result[x].Properties["mail"].Count > 0) ? result[x].Properties["mail"][0].ToString() : "";
                        wWWHomePage = Convert.ToBoolean(result[x].Properties["wWWHomePage"].Count > 0) ? result[x].Properties["wWWHomePage"][0].ToString() : "";
                        mobile = Convert.ToBoolean(result[x].Properties["mobile"].Count > 0) ? result[x].Properties["mobile"][0].ToString() : "";
                        homePhone = Convert.ToBoolean(result[x].Properties["homePhone"].Count > 0) ? result[x].Properties["homePhone"][0].ToString() : "";
                        employeeID = Convert.ToBoolean(result[x].Properties["employeeID"].Count > 0) ? result[x].Properties["employeeID"][0].ToString() : "";
                        title = Convert.ToBoolean(result[x].Properties["title"].Count > 0) ? result[x].Properties["title"][0].ToString() : "";
                        company = Convert.ToBoolean(result[x].Properties["company"].Count > 0) ? result[x].Properties["company"][0].ToString() : "";
                        department = Convert.ToBoolean(result[x].Properties["department"].Count > 0) ? result[x].Properties["department"][0].ToString() : "";
                        phone = Convert.ToBoolean(result[x].Properties["telephoneNumber"].Count > 0) ? result[x].Properties["telephoneNumber"][0].ToString() : "";
                        ou = result[x].Properties["distinguishedName"][0].ToString();
 
                        if (givenName.Length > 0)
                        {
                            Console.WriteLine(sAMAccountName);
                            Console.WriteLine(displayName);
                            Console.WriteLine(title);
                            Console.WriteLine(company);
                            Console.WriteLine(department);
                            Console.WriteLine(phone);
                            Console.WriteLine(streetAddress);
                            Console.WriteLine(ou);
                            Console.WriteLine();
                        }
                    }
                    
                }
            }
            catch(Exception ex)
            {
                Console.WriteLine(ex.ToString());
                Console.ReadLine();
            }
            Console.ReadLine();
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4 из 5
Похожие ответы