This function returns a string of the currently logged in user on Windows. An empty string is returned if a valid name cannot be obtained.
1: /// <summary>
2: /// Returns the name of the currently logged on Windows user.
3: /// </summary>
4: /// <returns>
5: /// Current user logon name string. Returns an empty string if a valid name cannot be obtained.</returns>
6: private static string GetWindowsUserName()
7: {8: System.Security.Principal.WindowsIdentity win_id = null;
9: string userName = String.Empty;
10: 11: try
12: {13: // Get an object with details about the currently logged on Windows user.
14: win_id = System.Security.Principal.WindowsIdentity.GetCurrent(); 15: 16: // Get current user domain name and logon name strings.
17: // [0] = Domain name.
18: // [1] = Logon name.
19: string[] names = win_id.Name.Split(new Char[] { '\\' }); // win_id.Name returns "Domain\Logon"
20: 21: if (names.Length == 2) { userName = (names[1]); }
22: }23: catch (System.Security.SecurityException)
24: {25: // Retrieving Windows user details failed so ensure returned name is an empty string.
26: userName = String.Empty; 27: }28: finally
29: {30: // Dispose of windows identity object.
31: if (win_id != null) { win_id.Dispose(); }
32: } 33: 34: return userName;
35: }
