Я использовал этот метод WindowsIdentity.GetCurrent(False).Name
в пространстве имен System.Security.Principal
, и он работал.Я использую VS2010 и .NET Framework 4
Я добавил в свой сервис строку для записи следующей строки в текстовый файл:
String.Format("Currently logged on account: {0}", System.Security.Principal.WindowsIdentity.GetCurrent(False).Name)
Он вернул соответствующую учетную запись Windows, под которойслужба Windows работала.
При работе под учетной записью Local Service
она возвращала NT AUTHORITY\LOCAL SERVICE
При работе под моей учетной записью домена dom\name.lastname
возвращалась DOM\Name.Lastname
Вы можете указать учетную запись, под которой будет запускаться служба, на вкладке «Вход» диалогового окна свойств службы.