Heute gibt es mal wieder einen kurzen Artikel zu unserer Reihe „Hilfreiche Funktionen in C# .NET„. Mit dem folgenden Codeschnipsel kann man relativ einfach die Codepage einer beliebigen Datei auslesen. Anhand der ersten 4 Bytes wird geprüft, wie das BOM (Byte Order Mark) gesetzt ist. (mehr …)
Alle Beiträge mit dem Stichwort: .NET
Zeichenfolgen bereinigen – Sonderzeichen entfernen
Heute gibt es einen weiteren Beitrag aus unserer Folge „Hilfreiche Funktionen in C# .NET„. Wenn man Dateinamen generiert, kann es manchmal dazu kommen, dass man Firmennamen oder andere, nicht vorher eindeutig generierte Zeichenfolgen in diesen Dateinamen einfügen will. (mehr …)
Eine Liste dynamisch nach einem Datumsintervall filtern
Eine weitere Hilfsfunktion aus der Blogbeitragsserie „Hilfreiche Funktionen in C# .NET„. Die folgende Funktion habe ich implementiert, um eine Liste von Entityobjekten dynamisch anhand eines Spaltennamen und einem bestimmten Intervall filtern zu können.
Da die Datumsspalten in manchen Projekten in der Datenbank unterschiedlich benannt sind, war es lästig, immer wieder eine Funktion für den speziellen Fall zu implementieren. Hierfür musste eine dynamische Funktion her, welche relativ einfach anwendbar ist. Genau aus diesem Grund habe ich diese statische Erweiterungsfunktion implementiert: (mehr …)
E-Mailadresse per LDAP für einen bestimmten Benutzer vom Active Directory holen
Du benutzt in deiner Anwendung als Authentifizierung bzw. Usererkennung direkt den im Active Directory angemeldeten Benutzer? Einfach, oder? Schwieriger wird es, wenn du an dem Punkt angelangst, an welchem du plötzlich die E-Mail-Adresse dieses Users benötigst.
Jetzt komplett auf eine eigenständige Benutzerverwaltung umzustellen wäre aufwendig und unnötig. Darum kann man mit folgender Funktion die Mailadresse für den aktuell angemeldeten Benutzer über LDAP abrufen:
12345678910111213141516171819202122
/// <summary> /// Gets the current user email address. /// </summary> /// <returns>the email address</returns> public static string GetCurrentUserEmailAddress() { string mail; var user = System.Security.Principal.WindowsIdentity.GetCurrent().Name; var entry = new DirectoryEntry("LDAP://domain.name"); using (var searcher = new DirectorySearcher(entry)) { searcher.Filter = "(sAMAccountName=" + user.Split('\\').ToList()[1] + ")"; searcher.PropertiesToLoad.Add("mail"); var result = searcher.FindOne(); mail = result.Properties["mail"][0].ToString(); } entry.Dispose(); return mail; }
Wichtig ist hier, dass man dem SearchFilter nur den Usernamen gibt. Man muss also mit Split vorher den Domänennamen entfernen.
Man kann diese Funktion auch benutzen, wenn man nicht selbst am Active Directory bzw. der Domäne angemeldet ist. Dann muss man lediglich dem DirectoryEntry noch einen validen Domänenbenutzer und das zugehörige Passwort übergeben. Näheres zu diesem Fall findet man in der MSDN.
Zeichenfolgen bereinigen – Sonderzeichen entfernen
Heute gibt es einen weiteren Beitrag aus unserer Folge „Hilfreiche Funktionen in C# .NET„. Wenn man Dateinamen generiert, kann es manchmal dazu kommen, dass man Firmennamen oder andere, nicht vorher eindeutig generierte Zeichenfolgen in diesen Dateinamen einfügen will. (mehr …)
Eine Liste dynamisch nach einem Datumsintervall filtern
Eine weitere Hilfsfunktion aus der Blogbeitragsserie „Hilfreiche Funktionen in C# .NET„. Die folgende Funktion habe ich implementiert, um eine Liste von Entityobjekten dynamisch anhand eines Spaltennamen und einem bestimmten Intervall filtern zu können.
Da die Datumsspalten in manchen Projekten in der Datenbank unterschiedlich benannt sind, war es lästig, immer wieder eine Funktion für den speziellen Fall zu implementieren. Hierfür musste eine dynamische Funktion her, welche relativ einfach anwendbar ist. Genau aus diesem Grund habe ich diese statische Erweiterungsfunktion implementiert: (mehr …)
E-Mailadresse per LDAP für einen bestimmten Benutzer vom Active Directory holen
Du benutzt in deiner Anwendung als Authentifizierung bzw. Usererkennung direkt den im Active Directory angemeldeten Benutzer? Einfach, oder? Schwieriger wird es, wenn du an dem Punkt angelangst, an welchem du plötzlich die E-Mail-Adresse dieses Users benötigst.
Jetzt komplett auf eine eigenständige Benutzerverwaltung umzustellen wäre aufwendig und unnötig. Darum kann man mit folgender Funktion die Mailadresse für den aktuell angemeldeten Benutzer über LDAP abrufen:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
/// <summary> /// Gets the current user email address. /// </summary> /// <returns>the email address</returns> public static string GetCurrentUserEmailAddress() { string mail; var user = System.Security.Principal.WindowsIdentity.GetCurrent().Name; var entry = new DirectoryEntry("LDAP://domain.name"); using (var searcher = new DirectorySearcher(entry)) { searcher.Filter = "(sAMAccountName=" + user.Split('\\').ToList()[1] + ")"; searcher.PropertiesToLoad.Add("mail"); var result = searcher.FindOne(); mail = result.Properties["mail"][0].ToString(); } entry.Dispose(); return mail; } |
Wichtig ist hier, dass man dem SearchFilter nur den Usernamen gibt. Man muss also mit Split vorher den Domänennamen entfernen.
Man kann diese Funktion auch benutzen, wenn man nicht selbst am Active Directory bzw. der Domäne angemeldet ist. Dann muss man lediglich dem DirectoryEntry noch einen validen Domänenbenutzer und das zugehörige Passwort übergeben. Näheres zu diesem Fall findet man in der MSDN.