Windows身份认证,通过活动目录得到用户信息

时间:2022-05-16 16:23:52

 

//获取到域名

                string domainName = HttpContext.Current.User.Identity.Name;

                UserManager manager = new UserManager();

                EmpInfo empInfo = manager.GetUserInfo(domainName);

 

2

public string GetEmpId(string domainName)

        {

            string id = string.Empty;

 

            if (!string.IsNullOrEmpty(domainName))

            {

                string[] parts = domainName.Split(new string[] { "\\" }, StringSplitOptions.RemoveEmptyEntries);

                id = parts[parts.Length - 1];

            }

 

            return id;

        }

3

DirectoryEntry de = new DirectoryEntry("LDAP://DC=cts,DC=com");

 

                DirectorySearcher search = new DirectorySearcher(de);

                search.Filter = string.Format("(sAMAccountName={0})"empId);

 

 

                SearchResult result = search.FindOne();

 

                SetUserAdInfo(resultuser);

4

private static void SetUserAdInfo(SearchResult searchEmpInfo emp)

        {

            LogManager manager = new LogManager();

            try

            {

                //manager.AddLog(GetLdapProperty(search, "givenName"));

                emp.EMP_FIRST_NAME = GetLdapProperty(search"givenName");

                emp.EMP_LAST_NAME = GetLdapProperty(search"sn");

                emp.DisplayName = GetLdapProperty(search"displayName");

                emp.MAIL_ADDRESS = GetLdapProperty(search"mail");

               

            }

   }

 

第二种方法

  string _path = "LDAP://" + ConfigurationSettings.AppSettings["ADServer"];

        public string GetDisplayName(string username)

        {

            DirectoryEntry entry = new DirectoryEntry(_path);

            try

            {

                DirectorySearcher searcher = new DirectorySearcher(entry);

                searcher.Filter = string.Format("(SAMAccountName={0})", username);

                SearchResult result = searcher.FindOne();

                if (null == result)

                {

                    return "none";

                }

                else

                {

                    return (string)result.Properties["displayName"][0];

               }

}