我试图获取正在访问我的ASP.NET Core应用程序的计算机的当前Windows用户。
我已经在解决方案上尝试过此方法。
System.Security.Principal.WindowsIdentity.GetCurrent().Name
在我的机器上,当在本地运行应用程序时,它运行良好,并且向我返回了我的用户名,但是当我部署该项目时,它向我返回了服务器的名称。
我要问的可能吗?
答案 0 :(得分:1)
这不是您的操作方式。您正在执行的操作将返回运行该应用程序的主体。在本地,那显然是您,因为它在您的帐户下运行。但是,在服务器上,它是应用程序池用户。无论哪种情况,都不是用户访问应用程序。只是偶然的是,在本地,访问该应用程序的用户和该应用程序在其下运行的帐户是相同的。
您要寻找的是Windows身份验证,您需要专门打开它(请参阅:Configure Windows Authentication in ASP.NET Core)。然后,您将像始终访问用户一样访问用户,而不考虑身份验证方案:HttpContext.User
。