润宇软件
首 页 企业简介 项目案例 软件定制 行业软件 解决方案 企业资讯 服务专区 客服中心
业务介绍:西安软件公司、软件开发、软件定制、软件外包
软件 方案 文章
  润宇软件 >> 新闻资讯  >> 解决方案

C#对域访问的相关方法

发布时间:2016/6/28  浏览次数:14次  字体【    】
/*------------------------------------------------------------------------------------
*Model Name:   DomainOperate
*Effect:       DomainOperate,Get Domain User and Get Domain Infomation
*Author:       lingliu
*Create time:  2007.7.26
*--------------------------Modify Infomation record----------------------------------
* Time         Operater      Description
*-------------------------------------------------------------------------------------
*2007.7.26     lingliu       create
*-----------------------------------------------------------------------------------*/
using System;
using System.Data;
using System.Collections.Generic;
using System.Text;
using System.DirectoryServices;
namespace Utility
{
    public class DomainOperate
    {
        #region GetDomainList
        /// <summary>
        /// GetDomainList
        /// </summary>
        /// <returns>Domain Talbe</returns>
        public static DataTable GetDomainList()
        {
            //Set DirectoryEntry info
            DirectoryEntry root = new DirectoryEntry("WinNT:");         
            DirectoryEntries domains = root.Children;
            domains.SchemaFilter.Add("domain");
            //Create Datatable
            DataTable dt = new DataTable("DomainList");
            DataColumn dc = new DataColumn("DomainName");
            dt.Columns.Add(dc);
            DataRow mdr = dt.NewRow();
            mdr["DomainName"] = "Please select domain";
            dt.Rows.Add(mdr);
            foreach (DirectoryEntry domain in domains)
            {
                DataRow dr = dt.NewRow();
                dr["DomainName"] = domain.Name;
                dt.Rows.Add(dr);
            }
            return dt;
        }
        #endregion
        #region  Get All Object By Domain
        /// <summary>
        /// Get All Object By Domain
        /// </summary>
        /// <param name="domain">Domain name</param>
        /// <param name="userName">Name of Domain</param>
        /// <param name="password">Password of Domain</param>
        /// <param name="objectClass">Objece Class name:  For Example:user,computer,domain eg.</param>
        /// <returns>Objece Table</returns>
        public static DataTable GetAllObjectByDomain(string domain, string userName, string password, string objectClass,ref string rtnMsg)
        {
            //Create DataTalbe
            DataTable dt = new DataTable("DomainObject");
            DataColumn dc = new DataColumn("ObjectName");
            dt.Columns.Add(dc);
            //Set DirectoryEntry Info
            DirectoryEntry entry = new DirectoryEntry("LDAP://"+ domain +".com");
            entry.Password = password;//password of domain admin
            entry.Username = userName;//username of domain admin
            DirectorySearcher mySearcher = new DirectorySearcher(entry);
            mySearcher.Filter = ("(objectClass=" + objectClass + ")");//filter data
           
            //Get Object Class Name
            try
            {
                foreach (SearchResult resEnt in mySearcher.FindAll())
                {
                    DataRow dr = dt.NewRow();
                    dr["ObjectName"] = resEnt.GetDirectoryEntry().Name.ToString().Remove(0, 3);
                    dt.Rows.Add(dr);
                }
            }
            catch(Exception ex)
            {
                rtnMsg = ex.Message.ToString();
                dt.Clear();
            }
            return dt;
        }
        #endregion
    }
}
  关闭本页
西部IT网合作伙伴 合作伙伴
陕西省 | 榆林 | 延安 | 铜川 | 渭南 | 商洛 | 宝鸡 | 汉中 | 安康 | 咸阳
网站首页 | 关于我们 | 售后服务 | 项目合同 | 查看留言 | 在线留言 | 客服中心
© 版权所有:西安润宇软件科技有限公司 
公司地址:西安市丝路国际创意梦工厂4号楼 联系电话:029-87878512 手机:13468700578 联系人:李先生
Copyright ® 2009-2015 RunYusoft.com Inc. All Rights Reserved 
技术支持:西安润宇软件科技有限公司  陕ICP备11000720号-3