/// <summary> /// This Method will Get the Array List of the Directory Object Attribute /// </summary> /// <param name="sAttributeName"></param> /// <param name="sUserName"></param> /// <param name="oValuesCollection"></param> /// <returns></returns> public ArrayList AttributeValuesMultiString(string sAttributeName, string sUserName, ArrayList oValuesCollection) { oDE = GetUser(sUserName); PropertyValueCollection oValueCollection = oDE.Properties[sAttributeName]; IEnumerator oIEn = oValueCollection.GetEnumerator(); while (oIEn.MoveNext()) { if (oIEn.Current != null) { if (!oValuesCollection.Contains(oIEn.Current.ToString())) { oValuesCollection.Add(oIEn.Current.ToString()); } } } oDE.Close(); oDE.Dispose(); return oValuesCollection; } #endregion #region Internal Methods /// <summary> /// This will read in the ADServer Value from the Web.config and will Return it /// as an LDAP Path /// eg. DC=testing, DC=co, DC=nz. /// This is required when Creating Directory Entry other than the Root. /// </summary> /// <returns></returns> private string GetLDAPDomain() { StringBuilder LDAPDomain = new StringBuilder(); string[] LDAPDC = sADServer.Split('.'); for (int i = 0; i < LDAPDC.GetUpperBound(0) + 1; i++) { LDAPDomain.Append("DC=" + LDAPDC[i]); if (i < LDAPDC.GetUpperBound(0)) { LDAPDomain.Append(","); } } return LDAPDomain.ToString(); } /// <summary> /// This method will Create a Dataset Stucture Containing all Relevant Fields for a User Object /// </summary> /// <returns></returns> private DataSet CreateUserDataSet() { oDs = new DataSet(); oTb = oDs.Tables.Add("User"); //Create All the Columns oTb.Columns.Add("company"); oTb.Columns.Add("department"); oTb.Columns.Add("description"); oTb.Columns.Add("displayName"); oTb.Columns.Add("facsimileTelephoneNumber"); oTb.Columns.Add("givenName"); oTb.Columns.Add("homePhone"); oTb.Columns.Add("employeeNumber"); oTb.Columns.Add("initials"); oTb.Columns.Add("ipPhone"); oTb.Columns.Add("l"); oTb.Columns.Add("mail"); oTb.Columns.Add("manager"); oTb.Columns.Add("mobile"); oTb.Columns.Add("name"); oTb.Columns.Add("pager"); oTb.Columns.Add("physicalDeliveryOfficeName"); oTb.Columns.Add("postalAddress"); oTb.Columns.Add("postalCode"); oTb.Columns.Add("postOfficeBox"); oTb.Columns.Add("sAMAccountName"); oTb.Columns.Add("sn"); oTb.Columns.Add("st"); oTb.Columns.Add("street"); oTb.Columns.Add("streetAddress"); oTb.Columns.Add("telephoneNumber"); oTb.Columns.Add("title"); oTb.Columns.Add("userPrincipalName"); oTb.Columns.Add("wWWHomePage"); oTb.Columns.Add("whenCreated"); oTb.Columns.Add("whenChanged"); oTb.Columns.Add("distinguishedName"); oTb.Columns.Add("info"); return oDs; } /// <summary> /// This method will Create a Dataset Stucture Containing all Relevant Fields for a Group Object /// </summary> /// <param name="sTableName"></param> /// <returns></returns> private DataSet CreateGroupDataSet(string sTableName) { oDs = new DataSet(); oTb = oDs.Tables.Add(sTableName); //Create all the Columns oTb.Columns.Add("distinguishedName"); oTb.Columns.Add("name"); oTb.Columns.Add("friendlyname"); oTb.Columns.Add("description"); oTb.Columns.Add("domainType"); oTb.Columns.Add("groupType"); oTb.Columns.Add("groupTypeDesc"); return oDs; } /// <summary> /// This Method will Return a DataRow Object which will be added to the User Dataset Object /// </summary> /// <param name="oUserSearchResult"></param> /// <param name="oUserTable"></param> /// <returns></returns> private DataRow PopulateUserDataSet(SearchResult oUserSearchResult, DataTable oUserTable) { //Sets a New Empty Row oRwUser = oUserTable.NewRow(); oRwUser["company"] = GetProperty(oUserSearchResult, "company"); oRwUser["department"] = GetProperty(oUserSearchResult, "department"); oRwUser["description"] = GetProperty(oUserSearchResult, "description"); oRwUser["displayName"] = GetProperty(oUserSearchResult, "displayName"); oRwUser["facsimileTelephoneNumber"] = GetProperty(oUserSearchResult, "facsimileTelephoneNumber"); oRwUser["givenName"] = GetProperty(oUserSearchResult, "givenName"); oRwUser["homePhone"] = GetProperty(oUserSearchResult, "homePhone"); oRwUser["employeeNumber"] = GetProperty(oUserSearchResult, "employeeNumber"); oRwUser["initials"] = GetProperty(oUserSearchResult, "initials"); oRwUser["ipPhone"] = GetProperty(oUserSearchResult, "ipPhone"); oRwUser["l"] = GetProperty(oUserSearchResult, "l"); oRwUser["mail"] = GetProperty(oUserSearchResult, "mail"); oRwUser["manager"] = GetProperty(oUserSearchResult, "manager"); oRwUser["mobile"] = GetProperty(oUserSearchResult, "mobile"); oRwUser["name"] = GetProperty(oUserSearchResult, "name"); oRwUser["pager"] = GetProperty(oUserSearchResult, "pager"); oRwUser["physicalDeliveryOfficeName"] = GetProperty(oUserSearchResult, "physicalDeliveryOfficeName"); oRwUser["postalAddress"] = GetProperty(oUserSearchResult, "postalAddress"); oRwUser["postalCode"] = GetProperty(oUserSearchResult, "postalCode"); oRwUser["postOfficeBox"] = GetProperty(oUserSearchResult, "postOfficeBox"); oRwUser["sAMAccountName"] = GetProperty(oUserSearchResult, "sAMAccountName"); oRwUser["sn"] = GetProperty(oUserSearchResult, "sn"); oRwUser["st"] = GetProperty(oUserSearchResult, "st"); oRwUser["street"] = GetProperty(oUserSearchResult, "street"); oRwUser["streetAddress"] = GetProperty(oUserSearchResult, "streetAddress"); oRwUser["telephoneNumber"] = GetProperty(oUserSearchResult, "telephoneNumber"); oRwUser["title"] = GetProperty(oUserSearchResult, "title"); oRwUser["userPrincipalName"] = GetProperty(oUserSearchResult, "userPrincipalName"); oRwUser["wWWHomePage"] = GetProperty(oUserSearchResult, "wWWHomePage"); oRwUser["whenCreated"] = GetProperty(oUserSearchResult, "whenCreated"); oRwUser["whenChanged"] = GetProperty(oUserSearchResult, "whenChanged"); oRwUser["distinguishedName"] = GetProperty(oUserSearchResult, "distinguishedName"); oRwUser["info"] = GetProperty(oUserSearchResult, "info"); return oRwUser; } /// <summary> /// This Method will Return a DataRow object which will be added to the Group Dataset Object /// </summary> /// <param name="oSearchResult"></param> /// <param name="oTable"></param> /// <returns></returns> private DataRow PopulateGroupDataSet(SearchResult oSearchResult, DataTable oTable) { //Sets a New Empty Row oRwResult = oTable.NewRow(); string sFullOU = GetProperty(oSearchResult, "distinguishedName"); string[] splita = sCharactersToTrim.ToString().Split(new Char[] { ';' }); foreach (string sa in splita) { sFullOU = sFullOU.Replace(sa, ""); } string sDisplayName = ""; string sRawString = ""; string[] split1 = sFullOU.Split(new Char[] { ',' }); foreach (string s1 in split1) { sRawString = s1; sRawString = sRawString.Replace("OU=", ""); sRawString = sRawString.Replace("DC=", ""); sRawString = sRawString.Replace("CN=", ""); sDisplayName = sRawString + "/" + sDisplayName; } oRwResult["distinguishedName"] = GetProperty(oSearchResult, "distinguishedName"); oRwResult["name"] = GetProperty(oSearchResult, "name"); oRwResult["friendlyname"] = sDisplayName.Substring(0, sDisplayName.Length - 1); ; oRwResult["description"] = GetProperty(oSearchResult, "description"); oRwResult["domainType"] = sADServer; string sGroupType = GetProperty(oSearchResult, "groupType"); oRwResult["groupType"] = sGroupType; switch (sGroupType) { case "2": oRwResult["groupTypeDesc"] = "Global, Distribution"; break; case "4": oRwResult["groupTypeDesc"] = "Domain, Distribution"; break; case "8": oRwResult["groupTypeDesc"] = "Universal, Distribution"; break; case "-2147483640": oRwResult["groupTypeDesc"] = "Universal, Security"; break; case "-2147483646": oRwResult["groupTypeDesc"] = "Global, Security"; break; case "-2147483644": oRwResult["groupTypeDesc"] = "Domain, Security"; break; default: oRwResult["groupTypeDesc"] = ""; break; } return oRwResult; } #endregion #endregion } } |
手机版|小黑屋|BC Morning Website ( Best Deal Inc. 001 )
GMT-8, 2025-12-13 12:13 , Processed in 0.012545 second(s), 17 queries .
Supported by Best Deal Online X3.5
© 2001-2025 Discuz! Team.