根据当前登录域账号 获取AD用户姓名和所在OU目录

根据当前登录域账号 获取AD用户姓名和所在OU目录

  #region 根据当前登录域账号 获取AD用户姓名和所在OU目录
        /// <summary>
        /// 根据当前登录域账号 获取AD用户姓名和所在OU目录   返回域用户是否存在
        /// </summary>
        /// <param name="searchUser">要搜索的当前用户名</param>
        /// <param name="paths">out返回该用户所在OU目录</param>
        /// <param name="userName">out 返回该用户的姓名</param>
        /// <returns>搜索域用户是否存在</returns>
        public static bool GetADUserNameAndPaths(string searchUser, out List<string> paths, out string userName)
        {
            bool isExite = false;//该域用户是否 存在。。。
            DataContextProvider.loger.Info(string.Format(">>>>>>>>>>>>>>>>>>>>>>>>>>>获取当前域用户信息log>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>start>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"));
            DirectoryEntry entry = null;
            string name = "未知";
            List<string> directorys = null;
            try
            {
                //读取配置文件...连接登录域服务器
                //"LDAP://10.2.17.*"   域服务器地址
                //登录名
                //密码
                DataContextProvider.loger.Info(string.Format("域服务地址:{0}、、域账号:{1}、、域密码{2}、、", ConfigHelper.DomainAddress, ConfigHelper.DomainAccount, ConfigHelper.DomainPassWord));
                using (entry=new DirectoryEntry(ConfigHelper.DomainAddress, ConfigHelper.DomainAccount, ConfigHelper.DomainPassWord, AuthenticationTypes.Secure))
                {
                    if (entry != null)
                    {
                        DirectorySearcher mySearcher = new DirectorySearcher(entry);
                        mySearcher.Filter = ("(&(|(objectClass=user)(objectClass=organizationalUnit)(objectClass=group))(|(cn=" + searchUser + ")(dn=" + searchUser + ")(sAMAccountName=" + searchUser + ")))");
                        // ("(&(objectClass=organizationalUnit)(OU=电力技术部))");
                        SearchResult searchResult = mySearcher.FindOne();
                        if (searchResult != null)
                        {
                            isExite = true;//该域用户 存在。。。
                            string path = searchResult.Path;
                            DataContextProvider.loger.Info(string.Format("获取当前登录域账号的OUPath>>>>>>>>>>>>>>>>>>>>>>>>>>>{0}", path));

                            string[] splits = path.Split(new char[] { ‘,‘ });
                            for (int i = splits.Count() - 1; i >= 0; i--)
                            {
                                if (splits[i].Contains("OU="))
                                {
                                    if (directorys==null)
                                    {
                                        directorys = new List<string>();
                                    }
                                    directorys.Add(splits[i].Substring(splits[i].IndexOf(‘=‘) + 1));
                                }
                            }
                            string xing = (string)(searchResult.Properties["sn"].Count>0?searchResult.Properties["sn"][0]:"");
                            string ming = (string)(searchResult.Properties["givenname"].Count>0?searchResult.Properties["givenname"][0]:"");
                            name = (xing + ming);
                            DataContextProvider.loger.Info(string.Format("获取当前登录域账号的姓名>>>>>>>属性>>>>>name>>>>>>>>>>>>>>>{0}", name));
                        }
                    }
                }

            }
            catch (Exception ex)
            {
                DataContextProvider.loger.Error(" 获取AD用户姓名和所在OU目录 发生异常::  " + ex.ToString());
            }
            //finally
            //{
            //    //释放资源
            //    entry.Close();
            //    entry.Dispose();
            //}
            paths = directorys;
            userName = name;

            return isExite;
        }

        #endregion

时间: 2024-10-05 23:45:35

根据当前登录域账号 获取AD用户姓名和所在OU目录的相关文章

AD-把禁用的AD用户移动到指定OU

使用 Search-ADAccount -AccountDisabled 命令,即可搜索出禁用的AD帐户 Search-ADAccount -AccountDisabled -SearchBase 最好指定一下范围,要不连Guest这种系统帐户也给移动了 [PS] D:\>Search-ADAccount -AccountDisabled -SearchBase "OU=xxxx,DC=xx,DC=xxxx,DC=net" | Move-ADObject -TargetPath

[Windows]_[MacOSX]_[获取程序的执行文件所在路径(目录)]

场景: 1. 有时候有些辅助程序文件需要放在主程序文件同样的位置,便于管理和调用,这时候就需要通过主程序的路径来获取辅助程序所在位置. 2. 或者通过执行文件地址获取程序目录的安装地址. 方案: 1. 这里列出来省的大家去费神去找了. Windows实现: Unicode2Utf8实现搜博客里有- #include <Windows.h> #include <shlwapi.h> std::string GetExeDir() { static wchar_t szbuf[MAX_

JAVA 通过LDAP获取AD域用户及组织信息

因为工作需求近期做过一个从客户AD域获取数据实现单点登录的功能,在此整理分享. 前提:用户可能有很多系统的情况下,为了方便账号的统一管理使用AD域验证登录,所以不需要我们的系统登录,就需要获取用户的AD域组织和用户信息,实现域认证和单点登录. LDAP: LDAP是轻量目录访问协议 AD域:微软基于域模式的集中化管理 1.常规的AD域登陆验证 LdapContext dc = null;             Hashtable<String, String> env = new Hasht

Java使用LdAP获取AD域用户

随着我们的习大大上台后,国家在网络信息安全方面就有了很明显的改变!所以现在好多做网络信息安全产品的公司和需要网络信息安全的公司都会提到用AD域服务器来验证,这里就简单的研究了一下! 先简单的讲讲AD域和LdAP目录访问协议:AD(active directory)活动目录,动态的建立整个域模式网络中的对象的数据库或索引,协议为LDAP,安装了AD的服务器称为DC域控制器,存储整个域的对象的信息并周期性更新!其中的对象分为三大类--资源(如印表机).服务(如电子邮件).和人物(即帐户或用户,以及组

C#获取AD域中计算机和用户的信息

如果你的计算机加入了某个AD域,则可以获取该域中所有的计算机和用户的信息. 所用程序集,需要.Net Framework 4. 添加程序集引用 System.DirectoryServices.AccountManagement 获取AD域名称,未加入AD域的,只能获取计算机名称. 如果未加入任何域,则后续的获取域用户.计算机等操作将无法进行,实例化域上下文对象时,会抛出异常. 1 IPGlobalProperties ipGlobalProperties = IPGlobalPropertie

微信公众平台无高级接口账号获取用户基本信息

获得微信公众平台关注用户的基本信息,包括昵称.头像.性别.国家.省份.城市.语言. 有两个不同的Access Token,他们产生的方式不一样, 一种是使用AppID和AppSecret获取的access_token, 一种是OAuth2.0授权中产生的access_token,方倍工作室分别称为全局Access Token和授权Access Token. 网页授权的两种scope的区别说明 1.以snsapi_base为scope发起的网页授权,是用来获取进入页面的用户的openid的,并且是

java以及C#获取AD域上用户信息

JAVA /** *  JAVA 读取AD用户信息 *  aa00a00 */package com.wanda.sso.client.servlet; import java.util.Hashtable; import javax.naming.Context;import javax.naming.NamingEnumeration;import javax.naming.NamingException;import javax.naming.directory.Attribute;imp

背水一战 Windows 10 (82) - 用户和账号: 获取用户的信息, 获取用户的同意

原文:背水一战 Windows 10 (82) - 用户和账号: 获取用户的信息, 获取用户的同意 [源码下载] 作者:webabcd 介绍背水一战 Windows 10 之 用户和账号 获取用户的信息 获取用户的同意 示例1.演示如何获取用户的信息UserAndAccount/UserInfo.xaml <Page x:Class="Windows10.UserAndAccount.UserInfo" xmlns="http://schemas.microsoft.c

AD 域服务简介(二)- Java 获取 AD 域用户

博客地址:http://www.moonxy.com 一.前言 先简单简单回顾上一篇博文中关于 AD 域和 LDAP目录访问协议的基本概念. AD(Active Directory)活动目录,动态的建立整个域模式网络中的对象的数据库或索引,使用的协议为 LDAP,安装了AD 的服务器称为 DC 域控制器,存储整个域的对象的信息并周期性更新,其中的对象分为三大类:资源(如印表机).服务(如电子邮件).和用户(即帐户或用户,以及组). 通常大家都会将 LDAP 与关系数据库相比,认为 LDAP 是另