Feedback

C# - Liefert ein Attribut Objekt eines LDAP Objects (cn)

Veröffentlicht von am 16.03.2007
(1 Bewertungen)
Liefert ein Object mit dem einzelnen LDAP-Wert für ein eindeutiges LDAP-Object (cn).
Ist null wenn a)das Object nicht gefunden wurde oder b)mehrere Einträge existieren.
GFU-Schulungen  [Anzeige]

Visual Studio Team Foundation Server 2017/2015 (TFS) für Projektmitglieder - Kompakt

Nach Teilnahme an dieser Schulung sind Ihnen die Grundlagen von ALM geläufig. Sie planen und steuern Projekte effizient mit dem Visual Studio Team Foundation Server.

XML und .NET Überblick

Um auf dem neuesten Wissensstand zu sein, sollten Sie unser aktuelles ASP .NET Komplett Seminar belegen.
Nach dem Seminar kennen Sie die wichtigsten Strömungen in der Software-Technologie

/// <summary>
/// Liefert ein Object mit dem einzelnen LDAP-Wert für ein eindeutiges LDAP-Object (cn).
/// Ist null wenn a)das Object nicht gefunden wurde oder b)mehrere Einträge existieren.
/// </summary>
/// <param name="LDAPcn">Der cn-Name.</param>
/// <param name="Property">Das gewünschte Property-Attribut.</param>
/// <param name="objectClass">Die AD ObjectClass. Mögliche Werte "computer", "user", "group","organizationalunit" oder null. </param>
/// <param name="LDAPEntryPoint">Der LDAP Einstiegspunkt oder null</param>
/// <example>
///     object up = GetLDAPValue(Environment.UserName, "mail","user",null);
/// </example>
public object GetLDAPValue(string LDAPcn, string Property, string objectClass, string LDAPEntryPoint)
{
	DirectorySearcher Searcher = new DirectorySearcher();
	SearchResultCollection SearchResults;
	if (objectClass == null)
	{
		Searcher.Filter = "(cn=" + LDAPcn + ")";
	}
	else
	{
		objectClass = objectClass.ToUpper();
		switch (objectClass)
		{
			case "COMPUTER":
				Searcher.Filter = "(&(objectClass=computer)(cn=" + LDAPcn + "))";
				break;
			case "USER":
				Searcher.Filter = "(&(objectClass=user)(cn=" + LDAPcn + "))";
				break;
			case "GROUP":
				Searcher.Filter = "(&(objectClass=group)(cn=" + LDAPcn + "))";
				break;
			case "ORGANIZATIONALUNIT":
				Searcher.Filter = "(&(objectClass=organizationalUnit)(cn=" + LDAPcn + "))";
				break;
	   }
	}
	Searcher.PropertiesToLoad.Add(Property);
	Searcher.SearchScope = SearchScope.Subtree;
	if (LDAPEntryPoint == null)
	{
		System.DirectoryServices.DirectoryEntry adsiRoot = new System.DirectoryServices.DirectoryEntry("LDAP://RootDSE");
		LDAPEntryPoint = "LDAP://" + adsiRoot.Properties["defaultNamingContext"][0];
	}
	Searcher.SearchRoot = new DirectoryEntry(LDAPEntryPoint);
	SearchResults = Searcher.FindAll();
	if (SearchResults.Count > 1)
	{
		return null;
	}
	else
	{
		foreach (SearchResult OutPut in SearchResults)
		{
			try
			{
				return OutPut.Properties[Property][0];
			}
			catch
			{
				return null;
			}
		}
	}
	return null;
}
Abgelegt unter LDAP.

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!