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

推荐订阅源

D
DataBreaches.Net
N
Netflix TechBlog - Medium
F
Fortinet All Blogs
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
宝玉的分享
宝玉的分享
Y
Y Combinator Blog
博客园 - 聂微东
WordPress大学
WordPress大学
酷 壳 – CoolShell
酷 壳 – CoolShell
B
Blog RSS Feed
小众软件
小众软件
The GitHub Blog
The GitHub Blog
S
SegmentFault 最新的问题
Hugging Face - Blog
Hugging Face - Blog
Jina AI
Jina AI
Microsoft Azure Blog
Microsoft Azure Blog
V
V2EX
B
Blog
H
Help Net Security
D
Docker
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
罗磊的独立博客
月光博客
月光博客
博客园 - 司徒正美

博客园 - 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('=');
        }