Ejemplo n.º 1
0
 /// <summary>
 /// 创建一个新的组织单元对象。
 /// </summary>
 /// <param name="containerDN">表示组织单元的容器DN。</param>
 /// <param name="commonName">表示组织单元的公共名称。</param>
 /// <returns>返回一个新的组织单元对象。</returns>
 public DomainOU CreateNewOU(string containerDN, string commonName)
 {
     try
     {
         if (string.IsNullOrEmpty(containerDN.Trim()))
         {
             throw new Exception("“containerDN”属性不能为空");
         }
         if (string.IsNullOrEmpty(commonName.Trim()))
         {
             throw new Exception("“commonName”属性不能为空");
         }
         string ouDN = "OU=" + commonName + "," + containerDN;
         using (DirectoryEntry container = GetDirectoryEntry(containerDN))
         {
             if (ExistDirectoryEntryByDN(ouDN))
             {
                 throw new Exception("已存在公共名称为“" + commonName + "”的对象。");
             }
             container.Children.Add("OU=" + commonName, "organizationalUnit").CommitChanges();
             DomainOU domainOU = GetOU(ouDN);
             return(domainOU);
         }
     }
     catch
     {
         return(null);
     }
 }
Ejemplo n.º 2
0
        private string GetADUser(string gourp, string name)
        {
            string json = string.Empty;

            Yawei.Domain.Domain domain = new Yawei.Domain.Domain();

            if (name.Trim() != "")
            {
                SearchResultCollection searchResultCollection = Yawei.Domain.Domain.ExecuteSearchResult(domain.GetDirectoryEntry(domain.DistinguishedName), "(&(objectCategory=person)(objectClass=user)(CN=*" + name + "*))", SearchScope.Subtree);
                json += "{";
                json += "\"total\":" + searchResultCollection.Count.ToString() + ",\"rows\":[";
                for (int i = 0; i < searchResultCollection.Count; i++)
                {
                    DomainUser user = domain.GetUser(searchResultCollection[i].GetDirectoryEntry().Guid.ToString());
                    json += "{\"UserGuid\":\"" + user.Guid.ToString() + "\",\"UserDN\":\"" + user.DN + "\",\"UserCN\":\"" + user.CN + "\",\"UserLoginName\":\"" + user.LoginName + "\",\"UserType\":\"AD\"}";
                    if (i + 1 < searchResultCollection.Count)
                    {
                        json += ",";
                    }
                }
                json += "]}";
            }
            else
            {
                using (DomainOU domainOU = domain.GetOU(gourp))
                {
                    SearchResultCollection searchResultCollection = Yawei.Domain.Domain.ExecuteSearchResult(domainOU, "(&(objectCategory=person)(objectClass=user))", SearchScope.OneLevel);;//Yawei.Domain.Domain.ExecuteSearchResult(domainOU, "(&(objectCategory=person)(objectClass=user))", SearchScope.OneLevel);
                    json += "{";
                    json += "\"total\":" + searchResultCollection.Count.ToString() + ",\"rows\":[";
                    for (int i = 0; i < searchResultCollection.Count; i++)
                    {
                        DomainUser user = domain.GetUser(searchResultCollection[i].GetDirectoryEntry().Guid.ToString());
                        json += "{\"UserGuid\":\"" + user.Guid.ToString() + "\",\"UserDN\":\"" + user.DN + "\",\"UserCN\":\"" + user.CN + "\",\"UserLoginName\":\"" + user.LoginName + "\",\"UserType\":\"AD\"}";
                        if (i + 1 < searchResultCollection.Count)
                        {
                            json += ",";
                        }
                    }
                    json += "]}";
                }
            }
            return(json);
        }
Ejemplo n.º 3
0
        public ActionResult UpdateOU(DomainOU id)
        {
            if (ModelState.IsValid)
            {
                using (var db = new ADWebDB())
                {
                    db.Entry(id).State = EntityState.Modified;
                    db.SaveChanges();

                    TempData["ou_updated"] = "The OU " + id.Name + " has been successfully updated!";
                    return(RedirectToAction("OU"));
                }
            }
            else
            {
                ModelState.AddModelError("", "Unable to update the Organizational Unit.");
            }

            return(View());
        }
Ejemplo n.º 4
0
        public ActionResult CreateOU(DomainOU newOU)
        {
            if (ModelState.IsValid)
            {
                using (var db = new ADWebDB())
                {
                    newOU.Enabled = true;

                    db.DomainOU.Add(newOU);
                    db.SaveChanges();

                    TempData["ou_created"] = "The Organizationl Unit " + newOU.Name + " has been created successfully!";
                    return(RedirectToAction("OU"));
                }
            }
            else
            {
                ModelState.AddModelError("", "Unable to create Organizational Unit.");
            }

            return(View("OU"));
        }
Ejemplo n.º 5
0
        private void SetPageData()
        {
            switch (model)
            {
            case "AD":
                Yawei.Domain.Domain domain   = new Yawei.Domain.Domain();
                DomainOU            domainOU = domain.GetOU("OU=市直机关,DC=qd,DC=gov,DC=cn");
                foreach (SearchResult searchResult in Yawei.Domain.Domain.ExecuteSearchResult(domainOU, "(objectClass=organizationalUnit)", SearchScope.OneLevel))
                {
                    ou += "<option value=\"" + searchResult.GetDirectoryEntry().Guid + "\">" + searchResult.GetDirectoryEntry().Name.Replace("OU=", "") + "</option>";
                }

                break;

            case "DB":
                Database database = DatabaseFactory.CreateDatabase("SystemPerson");
                DataSet  doc      = database.ExecuteDataSet("select Guid,title from Groups where ouPath='OU=青岛市政府投资项目科技防腐平台,DC=组'");
                foreach (DataRow dr in doc.Tables[0].Rows)
                {
                    ou += "<option value=\"" + dr["Guid"].ToString() + "\">" + dr["title"].ToString() + "</option>";
                }
                break;
            }
        }
Ejemplo n.º 6
0
 public OUViewModel()
 {
     NewOU = new DomainOU();
     //ActiveOUs = new List<DomainOU>();
     //DisabledOUs = new List<DomainOU>();
 }
Ejemplo n.º 7
0
        /// <summary>
        /// 创建组织单元对象。
        /// </summary>
        /// <param name="path">表示访问路径。</param>
        /// <returns>组织单元域节点或对象。</returns>
        public DomainOU GetOU(string path)
        {
            DomainOU domainOU = new DomainOU(CreateDirectoryPath(path), Username, Password, AuthenticationType);

            return(domainOU);
        }
Ejemplo n.º 8
0
 public OUViewModel()
 {
     NewOU = new DomainOU();
 }