using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.DirectoryServices; using System.Drawing; using System.IO; using System.Linq; using System.Reflection; using System.Security; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace Test_Benutzername { public partial class Form1 : Form { #region Version und Copyright // Version und Copyright string programName = Path.GetFileNameWithoutExtension(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase); //Den Programmnamen auslesen string programVersion = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString(); static object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false); string copyright = GenerateCopyright(); string icon = Application.StartupPath + "\\Info.bmp"; //Assembly Datum und Zeit static DateTime value = AssemblyDateTime(); string date = value.ToShortDateString(); string time = value.ToLongTimeString(); private static DateTime AssemblyDateTime() { var version = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version; var buildDateTime = new DateTime(2000, 1, 1).Add(new TimeSpan(TimeSpan.TicksPerDay * version.Build + TimeSpan.TicksPerSecond * 2 * version.Revision)); //Tage seit dem 1. Januar 2000 und Sekunden seit Mitternacht, (multiplizier mit 2 ergibt das Original) return buildDateTime; } private static string CurrentYear() { DateTime dtn = DateTime.Now; return dtn.Year.ToString(); } private static string StartYear() { string startYear = ""; if (((AssemblyCopyrightAttribute)attributes[0]).Copyright.Contains("Copyright © ")) { startYear = ((AssemblyCopyrightAttribute)attributes[0]).Copyright.Replace("Copyright © ", ""); while (startYear.StartsWith(" ")) { startYear = startYear.Remove(0, 1); } if (startYear.Contains("-")) { startYear = startYear.Remove(startYear.IndexOf("-")); } else { startYear = startYear.Remove(startYear.IndexOf(" ")); } return startYear; } else { DateTime dtn = DateTime.Now; return dtn.Year.ToString(); } } private static string GenerateCopyright() { string startYear = StartYear(); string currentYear = CurrentYear(); if (startYear == currentYear) { return ((AssemblyCopyrightAttribute)attributes[0]).Copyright; } else { string temp = ((AssemblyCopyrightAttribute)attributes[0]).Copyright; string start = temp.Remove(temp.IndexOf(startYear) - 1); string end = (temp.Remove(0, temp.IndexOf(" by"))); return String.Concat(start, " ", startYear, "-", currentYear, end); } } #endregion #region Programm-Info /// /// Contains the name of the program file /// public static string ProgramName { set; get; } /// /// Contains the version of the program file /// public static string ProgramVersion { set; get; } /// /// Contains the copyright notice /// public static string Copyright { set; get; } private void SetProgramInfo() { //Name, Version und Copyright setzen ProgramName = programName; ProgramVersion = programVersion; Copyright = copyright; } #endregion public Form1() { SetProgramInfo(); InitializeComponent(); } //public static Boolean CheckNTLogon(String Username, String password) //{ // IntPtr _token; // UnsafeNativeMethods.LogonUserEx(Username, Environment.UserDomainName, password, // SafeNativeMethods.UnsafeNativeMethods.LogonType.Logon32_Interactive, // 0, out _token, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero); // UnsafeNativeMethods.CloseHandle(_token); // return _token != IntPtr.Zero; //} private void buttonStart_Click(object sender, EventArgs e) { labelResult.Text = "Aktueller User: " + CurrentUser(); labelResult.Text += Environment.NewLine + "Aktueller Domain/Username: " + CurrentDomainUser(); string user = String.Concat(CurrentUser(), ".cadm"); string domain = CurrentDomainUser().Remove(CurrentDomainUser().IndexOf("\\")); if (UserExists(user, domain, null, null, null)) { labelResult.Text += Environment.NewLine + "Gefundener Username: " + user; } else { labelResult.Text += Environment.NewLine + "User " + user + " wurde nicht gefunden"; } } private string CurrentUser() { return Environment.UserName; } private string CurrentDomainUser() { return System.Security.Principal.WindowsIdentity.GetCurrent().Name; } private static bool UserExists (string userName, string domainName, string machineName, string authenticationUser, string authenticationPassword) { if (domainName == null && machineName == null) { machineName = Environment.MachineName; } string adsiPath = "WinNT://"; if (domainName != null && machineName != null) { adsiPath += domainName + "/" + machineName + ",computer"; } else if (machineName != null) { adsiPath += machineName + ",computer"; } else if (domainName != null) { adsiPath += domainName + ",domain"; } DirectoryEntry computerEntry = new DirectoryEntry(adsiPath, authenticationUser, authenticationPassword); try { DirectoryEntry userEntry = computerEntry.Children.Find(userName, "user"); return true; } catch { return false; } } } }