Ejemplo n.º 1
0
		/// <summary>
		/// Get the properties specific to the LDAP entry. 
		/// </summary>
		protected override LdapSearchResult CreateSearchEntry(Hashtable ht)
		{
			LdapSearchResult ee = new LdapSearchResult();
			#region User Information
			if( ht.ContainsKey("cn") )
				ee.DisplayName = ht["cn"].ToString();
			if( ht.ContainsKey("distinguishedname") )
				ee.DistinguishName = ht["distinguishedname"].ToString();
			if( ht.ContainsKey("givenname") )
				ee.GivenName = ht["givenname"].ToString();
			if( ht.ContainsKey("sn") )
				ee.Surname = ht["sn"].ToString();
			if( ht.ContainsKey("uid") )
				ee.Alias = ht["uid"].ToString();				
			if( ht.ContainsKey("objectsid") )
				if ( ht["objectsid"].GetType() == typeof(byte[]) )
					ee.CreateAccountInfo((byte[])ht["objectsid"]);
			if( ht.ContainsKey("adspath") )
				ee.AdsPath = ht["adspath"].ToString();
			if( ht.ContainsKey("objectclass") )
			{
				ee.ResultType = LdapSearchResultType.Object;
				string[] classTypes = ht["objectclass"].ToString().Split(',');
				foreach( string classType in classTypes )
				{
					switch( classType.ToLower(System.Threading.Thread.CurrentThread.CurrentCulture) )
					{
						case "organizationalperson":
						case "person":
						case "user":
							ee.ResultType = LdapSearchResultType.User;
							break;
						case "group":
							ee.ResultType = LdapSearchResultType.Group;
							break;
					}
					if ( ee.ResultType != LdapSearchResultType.Object )
						break;
				}
			}
			#endregion

			#region Business Info
			if( ht.ContainsKey("company") )
				ee.Company = ht["company"].ToString();
			if( ht.ContainsKey("department") )
				ee.Department = ht["department"].ToString();
			if( ht.ContainsKey("title") )
				ee.Title = ht["title"].ToString();
			if( ht.ContainsKey("telephonenumber") )
				ee.TelephoneNumber = ht["telephonenumber"].ToString();
			#endregion

			#region Address Information
			StringBuilder addr = new StringBuilder();
			if( ht.ContainsKey("postaladdress") )
				addr.AppendFormat("{0}{1}",					
					ht["postaladdress"].ToString(),
					(ht["postaladdress"].ToString().Length > 0 ? Environment.NewLine : ""));
			if( ht.ContainsKey("postalcode") )
				addr.AppendFormat("{0}{1}",					
					ht["postalcode"].ToString(),
					(ht["postalcode"].ToString().Length > 0 ? Environment.NewLine : ""));
			if( ht.ContainsKey("l") )
				addr.AppendFormat("{0}{1}",					
					ht["l"].ToString(),
					(ht["l"].ToString().Length > 0 ? Environment.NewLine : ""));
			if( ht.ContainsKey("st") )
				addr.AppendFormat("{0}{1}",					
					ht["st"].ToString(),
					(ht["st"].ToString().Length > 0 ? Environment.NewLine : ""));
			if( ht.ContainsKey("co") )
				addr.AppendFormat("{0}{1}",					
					ht["co"].ToString(),
					(ht["co"].ToString().Length > 0 ? Environment.NewLine : ""));
			ee.Address = addr.ToString().Trim();
			#endregion

			#region Email Inforamation
			if( ht.ContainsKey("mail") )
			{
				ee.EmailAddress = ht["mail"].ToString();				
				ee.SmtpAddress = ht["mail"].ToString();
			}
			#endregion
			return ee;
		}
Ejemplo n.º 2
0
		/// <summary>
		/// Get the properties specific to the LDAP entry. 
		/// </summary>
		protected override LdapSearchResult CreateSearchEntry(Hashtable ht)
		{
			LdapSearchResult ee = new LdapSearchResult();
			#region User Information
			object item = ht["cn"];
			if (item != null)
			{
				ee.DisplayName = item.ToString();
			}
			item = ht["distinguishedname"];
			if (item != null)
			{
				ee.DistinguishName = item.ToString();
			}
			item = ht["givenname"];
			if (item != null)
			{
				ee.GivenName = item.ToString();
			}
			item = ht["sn"];
			if (item != null)
			{
				ee.Surname = item.ToString();
			}
			item = ht["uid"];
			if (item != null)
			{
				ee.Alias = item.ToString();
			}
			item = ht["assoc-nt-account"];
			if (item != null && item is byte[])
			{
				ee.CreateAccountInfo(item as byte[]);
			}
			item = ht["adspath"];
			if (item != null)
			{
				ee.AdsPath = item.ToString();
			}
			item = ht["objectclass"];
			if (item != null)
			{
				ee.ResultType = LdapSearchResultType.Object;
				string[] classTypes = item.ToString().Split(',');
				foreach (string classType in classTypes)
				{
					switch (classType.ToLower(System.Threading.Thread.CurrentThread.CurrentCulture))
					{
					case "organizationalperson":
					case "person":
						ee.ResultType = LdapSearchResultType.User;
						break;
					case "groupofnames":
						ee.ResultType = LdapSearchResultType.Group;
						break;
					}
					if (ee.ResultType != LdapSearchResultType.Object)
					{
						break;
					}
				}
			}
			#endregion

			#region Business Info
			item = ht["company"];
			if (item != null)
			{
				ee.Company = item.ToString();
			}
			item = ht["department"];
			if (item != null)
			{
				ee.Department = item.ToString();
			}
			item = ht["title"];
			if (item != null)
			{
				ee.Title = item.ToString();
			}
			item = ht["telephonenumber"];
			if (item != null)
			{
				ee.TelephoneNumber = item.ToString();
			}
			#endregion

			#region Address Information
			StringBuilder addr = new StringBuilder();
			string[] addressParts = { "postaladdress", "postalcode", "l", "st", "co" };
			foreach (string part in addressParts)
			{
				item = ht[part];
				if (item != null)
				{
					string value = item.ToString();
					if (value.Length > 0)
					{
						addr.AppendLine(value);
					}
				}
			}
			ee.Address = addr.ToString().Trim();
			#endregion

			#region Email Inforamation
			item = ht["mail"];
			if (item != null)
			{
				ee.EmailAddress = item.ToString();				
			}
			item = ht["rfc822mailbox"];
			if (item != null)
			{
				ee.SmtpAddress = item.ToString();
			}
			#endregion
			return ee;
		}