[.NET] 取得 Active Directory使用者的 Domain\User

[.NET] : 取得 Active Directory使用者的 Domain\User


前言 :

處理AD資料的時候
常常會需要取得使用者的Domain\User資料
可是使用者的AD屬性卻沒有這個資料
本篇文章的程式示範,如何取得使用者的Domain\User。


實作 :

using System;
using System.Collections.Generic;
using System.Text;
using System.DirectoryServices;
using System.Security.Principal;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string userURL = @"LDAP://e12.com/CN=TTT,DC=E12,DC=com"; 

            Console.WriteLine(GetSamName(userURL));

            Console.ReadLine();
        } 

        public static string GetSamName(string userURL)
        {
            using (DirectoryEntry user = new DirectoryEntry(userURL)) 
            {
                SecurityIdentifier securityIdentifier = new SecurityIdentifier((byte[])(user.Properties["objectsid"].Value), 0);
                NTAccount account = (NTAccount)securityIdentifier.Translate(typeof(NTAccount));
                return account.Value;
            }
        }
    }
}
期許自己
能以更簡潔的文字與程式碼,傳達出程式設計背後的精神。
真正做到「以形寫神」的境界。