Feedback

C# - Liefert ein Dictionary der letzten Anmeldung eines Users

Veröffentlicht von am 16.03.2007
(2 Bewertungen)
Liefert ein Dictionary der letzten Anmeldung eines Users an einer ACtive Directory Domain.
Da das lastlogon Attribut nicht auf alle DC's repliziert wird, werden alle DC's durchsucht.

Die Function 'GetLDAPValue' ist in einem anderem Snippet von mir veröffentlicht.
GFU-Schulungen  [Anzeige]

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

JavaScript für .NET-Entwickler

Sie sind .NET-Entwickler und nun stehen Sie vor der Aufgabe, JavaScript in Ihre Arbeit einzubinden. Die Schulung vermittelt Ihnen die JavaScript Grundlagen und die Funktionen der Scriptsprache. Sie wissen, wie objektorientierte Programmierung in JavaScript funktioniert und lernen abschließend Best Practicies Fälle kennen.

/// <summary>
/// Liefert ein Dictionary der letzten Anmeldung eines Users.
/// Da das Attribut nicht auf alle DC's repliziert wird, werden alle DC's durchsucht.
/// </summary>
/// <param name="User">Der NT-Account (cn)</param>
/// <example>
///   System.Collections.Generic.Dictionary<string, DateTime> UserLastLogon = GetUserLastLogon(Environment.UserName);
///   foreach (KeyValuePair<string, DateTime> kvp in UserLastLogon)
///   {
///      string ServerName = kvp.Key;
///      DateTime LastLogon = kvp.Value;
///   }
/// </example>
public System.Collections.Generic.Dictionary<string, DateTime> GetUserLastLogon(string User)
{
	DateTime DateLastLogon = DateTime.MinValue;
	string LDAPServerName = "";
	System.Collections.Generic.Dictionary<string, DateTime> LastLogon = new System.Collections.Generic.Dictionary<string, DateTime>();
	System.DirectoryServices.ActiveDirectory.Domain Domain = System.DirectoryServices.ActiveDirectory.Domain.GetComputerDomain();
	foreach (System.DirectoryServices.ActiveDirectory.DomainController Server in Domain.DomainControllers)
	{
		object LastLogonLongTime = GetLDAPValue(User, "lastlogon", "user", "LDAP://" + Server.Name);
		if (LastLogonLongTime != null)
		{
			if (System.DateTime.FromFileTime((long)LastLogonLongTime) > DateLastLogon)
			{
				DateLastLogon = System.DateTime.FromFileTime((long)LastLogonLongTime);
				LDAPServerName = Server.Name;
			}
		}
	}
	if (LDAPServerName == "")
	{
		LastLogon.Add("", DateTime.MaxValue);
		return LastLogon;
	}
	else
	{
		LastLogon.Add(LDAPServerName, DateLastLogon);
		return LastLogon;
	}
}
Abgelegt unter LDAP.

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!