2017-04-24 153 views
0

我有一个当前正在虚拟机中托管的小型Web应用程序。该机器具有Windows 8 + IIS 7.从虚拟机获取用户名

作为应用程序的一部分,我需要获取访问此血腥Web应用程序的用户的用户名。但每次我试图获得当前用户时,我都会得到虚拟机名称。

如何才能正确获取访问该应用程序的机器的名称。在虚拟机上?

+0

你有什么试过o现在呢? –

+2

这是ASP.NET MVC?只有当您有关于设计模式的具体问题时,才应该使用'model-view-controller'标签。当你有关于框架的问题时,用'asp.net-mvc'标记。 – mason

+0

我已经使用“GetIPHost.HostName”,“Security.Principal.WindowsIdentity.GetCurrent()”和“Environment.UserName”。但没有工作.. – achilles41

回答

0

如果用户登录通过活动目录,这应该工作:

System.Security.Principal.WindowsPrincipal(System.Security.Principal.WindowsIdentity.GetCurrent()).Identity.Name; 
+0

不幸的是我得到“IIS APPPOOL \ ”作为用户名.. – achilles41

+0

这听起来像你可能在IIS中启用匿名登录。确保已禁用,并启用集成安全性。 –

+0

谢谢德鲁肯尼迪..现在问题解决了.. – achilles41

0

在控制器上,无论是Windows或窗体身份验证,你应该能够通过获取用户:

this.User.Identity.Name 

还是从HTTP上下文:

HttpContext.Current.User.Identity.Name