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]

C# Komplett

Sie kennen sich in objektorientierter Programmierung aus. Sie schreiben C++ oder Java? Und nun stehen Sie vor der Aufgabe, in C# Anwendungen zu erstellen. Das C# Komplett-Seminar verschafft Ihnen umfassende Programmierkenntnisse in dieser Sprache. Nach der Schulung entwickeln Sie selbständig Anwendungen mit C#. Sie kennen die Datentypen und Klassenbibliotheken der objektorientierten Programmiersprache C#. Der Komplettkurs setzt bei den Grundlagen von C# ein. Sie arbeiten mit Variablen und konvertieren Typen. Multithreading, Delegates, Generics sind nach dem Seminar für Sie kein Geheimnis mehr.

VB.NET 2017/2015/2013 Aufbau

Nach dieser Schulung können Sie mittels objektorientierter Modelle in VB.NET 2017/2015/2013 wiederverwendbare Elemente eigenständig erstellen.

/// <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!