惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Y
Y Combinator Blog
Google DeepMind News
Google DeepMind News
腾讯CDC
V
Visual Studio Blog
Engineering at Meta
Engineering at Meta
博客园 - 司徒正美
小众软件
小众软件
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
T
Tailwind CSS Blog
Vercel News
Vercel News
爱范儿
爱范儿
Last Week in AI
Last Week in AI
G
Google Developers Blog
阮一峰的网络日志
阮一峰的网络日志
P
Proofpoint News Feed
有赞技术团队
有赞技术团队
D
DataBreaches.Net
博客园_首页
J
Java Code Geeks
云风的 BLOG
云风的 BLOG
V
V2EX
A
About on SuperTechFans
H
Hackread – Cybersecurity News, Data Breaches, AI and More
人人都是产品经理
人人都是产品经理

博客园 - fatrick

媒体网关在OCS系统架构中的作用 图文详解配置ocs边缘服务器 实战部署UC平台(OCS VOIP GW and Exchange 2007) OCS服务器Ports and Protocols OCS发待办事宜 增强SEO的div+css命名规则 WEB网站大数据量的性能解决方案 mapxtreme2005 改变选中的图元样式 Mapxtreme2005 两点之间画直线 mapxtreme2005 创建各种样式 MapxTreme2005 画扇区 MapXtreme 2005 基础代码 MapXtreme创建本地TAB文件 - fatrick - 博客园 如何在DataGrid里面产生滚动条 [转载]关于项目管理的一点体会 [IE&FireFox兼容]JS对select操作 个人网站建设八部曲 帮助解决网页和JS文件中的中文编码问题的小工具 FLV Player下载
ActiveDirectory获取用户
fatrick · 2009-06-07 · via 博客园 - fatrick

        private string[] GetUserUnit(string domainADsPath, string username, string password, string schemaClassNameToSearch)
        {
            SearchResultCollection results = _ADHelper(domainADsPath, username, password, schemaClassNameToSearch);
            string[] sRe = GetGetUserUnitResults(results);

            results.Dispose();

            return sRe;
        }

        private string[] GetGetUserUnitResults(SearchResultCollection results)
        {
            string sRe = string.Empty;
            if (results.Count == 0)
                throw new Exception("域中没有任何用户");
            else
            {
                foreach (SearchResult result in results)
                {
                    string adPath = result.Path;
                    if (adPath.IndexOf("OU=用户") < 0)
                        continue;
                    //“组织名,登录名,用户名,邮件地址”
                    // 分解Path得到组织名
                    string[] sSplit = adPath.Split(',');
                    string orz = string.Empty;
                    if (sSplit.Length > 2)
                    {
                        orz = sSplit[1].Split('=')[1];
                    }
                    ResultPropertyCollection propColl = result.Properties;
                    if (propColl["samaccountname"].Count > 0)
                        orz += "," + propColl["samaccountname"][0].ToString();
                    if (propColl["name"].Count > 0)
                        orz += "," + propColl["name"][0].ToString();
                    if(propColl["mail"].Count > 0)
                        orz += "," + propColl["mail"][0].ToString();
                    sRe += orz + "=";
                }
            }
            if (sRe.Length > 0)
                sRe = sRe.Substring(0, sRe.Length - 1);
            return sRe.Split('=');
        }