В .NET существует несколько способов получить текущее имя пользователя Windows. Три из них:
string name = WindowsIdentity.GetCurrent().Name;
или
string name = Thread.CurrentPrincipal.Identity.Name;
или
string name = Environment.UserName;
В чем разница и почему вы выбираете один метод над другим? Есть ли другие способы?