我想创建一个显示“欢迎用户名”的文本块。
用户名 = 当前 Windows 用户。
我在一个 WPF 项目中工作。
您应该使用Environment.UserName
(msdn):
获取当前登录到 Windows 操作系统的人员的用户名。
例子:
Console.WriteLine("UserName: {0}", Environment.UserName);
如果要获取当前正在运行该进程的用户,请使用:
string userName = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
或者
string userName = System.Environment.UserName
但是您获得的用户Environment.UserName
不能保证是运行当前进程的用户。
此评论解释了两者之间的区别:
首选的原因
WindowsIdentity.GetCurrent()
是这会返回应用程序正在运行的帐户。这不一定是当前登录到 Windows 的帐户(想想“RunAs”或模拟/委托)。因此,如果您想知道登录用户,请使用环境(如果您信任它)。如果您想知道您的应用程序正在运行的安全上下文,请使用WindowsIdentity.GetCurrent()
.