Я могу использовать этот код для получения идентификатора GUID и SID текущего пользователя, вошедшего в систему:
UserPrincipal user = System.DirectoryServices.AccountManagement.UserPrincipal.Current;
Console.WriteLine("{0}, {1}", user.Guid, user.Sid);
Однако, если пользователь входит в систему без подключения к сети, этот код завершается ошибкой ("с сервером невозможно связаться. ").Я могу получить SID этого пользователя, даже если он не подключен, например:
WindowsIdentity identity = System.Security.Principal.WindowsIdentity.GetCurrent();
Console.WriteLine("{0}", identity.User.Value);
Но, насколько я могу судить, объект WindowsIdentity не содержит GUID.
Как я могу получить GUID текущего пользователя, если он не подключен к сети?
ПРИМЕЧАНИЕ. Это настольное приложение, а не вебприложение.