如何使用C#在.NET中获取当前用户名?
string userName = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
Environment.UserName
有什么不同? - Sam Harwellwindow_loaded
дәӢ件дёӯеҠ е…ҘMessageBox.Show(Environment.UserName);
пјҢ然еҗҺдҪҝз”ЁRunAsиҝҗиЎҢжқҘйӘҢиҜҒгҖӮ - Bolu域\用户名
。我该如何获得与该用户名相关联的名称? - SearchForKnowledgeEnvironment.UserName
- Will Display format : 'Username'
而不是
System.Security.Principal.WindowsIdentity.GetCurrent().Name
- Will Display format : 'NetworkName\Username'
请选择您想要的格式。
Environment.UserDomainName + "\\" + Environment.UserName
来获取与System.Security.Principal.WindowsIdentity.GetCurrent().Name
看起来相同的结果。现在,您可能会问有什么区别...我不太确定。 - GutblenderSystem.Security.Principal.WindowsIdentity.GetCurrent().Name.Split('\\').Last();
- thehelixToArray()
。但是你需要使用 using System.Linq;
。 - TheSoftwareJediSystem.Security.Principal.WindowsIdentity.GetCurrent().Name.Split('\\')[1];
。 - Mike Lowery尝试使用属性:Environment.UserName
。
string userName = Environment.UserName;
,其中 Environment.UserName
表示当前用户的用户名。 - DonutEnvironment.UserName
返回登录账户名,但是WindowsIdentity.GetCurrent().Name
返回应用程序运行的账户名。 - Gerwald环境.UserName的文档似乎有点矛盾:
在同一页上,它说:
获取当前登录到Windows操作系统的用户的用户名。
和
显示启动当前线程的人的用户名。
如果您使用RunAs测试Environment.UserName,它将为您提供RunAs用户帐户名称,而不是最初登录到Windows的用户。
我完全同意其他回答,但我想强调另一种方法,即
String UserName = Request.LogonUserIdentity.Name;
上述方法以以下格式返回用户名:DomainName\UserName,例如 EUROPE\UserName。String UserName = Environment.UserName;
显示格式为:用户名
最后:
String UserName = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
这个问题在运行应用程序时会显示:NT AUTHORITY\IUSR
(在IIS服务器上运行应用程序时)和DomainName\UserName
(在本地服务器上运行应用程序时)。
Request
只有在你是一个 Web 应用程序时才能工作。它是 System.Web.HttpRequest
的一个实例。 - Gerardo Grignoli使用:
System.Security.Principal.WindowsIdentity.GetCurrent().Name
那将是登录名。
String myUserName = Environment.UserName
这将给您输出 - 您的用户名
如果有人像我一样在寻找与用户名相对应的用户显示名称,以下是相关内容:
System.DirectoryServices.AccountManagement.UserPrincipal.Current.DisplayName
在您的项目中添加对System.DirectoryServices.AccountManagement
的引用。
你可能还想尝试使用以下方法:
Environment.UserName;
像这样...:
string j = "Your WindowsXP Account Name is: " + Environment.UserName;
希望这对您有所帮助。
我尝试了几种现有答案的组合,但它们都没有成功。
DefaultAppPool
IIS APPPOOL
IIS APPPOOL\DefaultAppPool
我最终使用了
string vUserName = User.Identity.Name;
这使我只获取到实际用户的域用户名。