c# - 获取登录用户 SID 而不是提升的用户

标签 c# .net winforms sid

如何在提升的 .NET 应用程序中获取登录用户 SID?

我已经尝试过 WindowsIdentity.GetCurrent(),这当然会返回提升进程的管理员。据我所知,我可能需要使用 native 方法来执行此操作,任何人都可以提供更优雅的方法吗?

最佳答案

调查 Greg's使用注册表的建议:

我发现以下 key 在提供当前登录用户的信息方面似乎很可靠。此 key 包括显示名称和 SID 等信息。此信息存储在“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI”下

此信息在 Windows 8 上是准确的。我检查过 Windows 7,但包含的信息少得多,例如:没有登录用户 SID。

关于c# - 获取登录用户 SID 而不是提升的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14916263/

相关文章:

c# - List<T>.ToList() 是否枚举集合

c# - VB6 中的复合字符串格式化(即要格式化的字符串中的 : using {0}, {1} 和 {2})

c# - 构造函数注入(inject)对象的处置

c# - DataBindingComplete 被多次调用

c# - 动态循环控件没有效果

c# - 作为代码修复的一部分在类上实现接口(interface)

c# - Writer 已关闭或处于错误状态

.net - 在命令绑定(bind)中使用 WPF 控件自己的属性

c# - AzureStorageFile.Uri 未返回具有特殊字 rune 件名的正确 Uri,导致 404 响应

.net - 将.NET 1.1 WinForm/Service升级到什么?