Environment.UserName返回应用程序池名称而不是用户名

时间:2014-01-14 10:50:42

标签: c# asp.net .net iis user-identification

以下一行

Environment.UserName

在visual studio的调试模式下,返回用户的身份,就像我需要的那样。

然后,当我在IIS中设置我的站点并运行代码时,同一行返回该站点使用的应用程序池的名称。

如何让它仍然返回用户名?

4 个答案:

答案 0 :(得分:5)

尝试这样的事情:

if (System.Web.HttpContext.Current.User.Identity.IsAuthenticated)
{
   string username = System.Web.HttpContext.Current.User.Identity.Name;
}

重要说明:您需要配置IIS以启用集成安全性并禁用匿名登录。

请注意Environment.Username返回当前线程的用户名。

答案 1 :(得分:2)

尝试使用

Request.ServerVariables["LOGON_USER"]

它将返回DOMAIN\USERNAME。然后你可以拆分它等。

答案 2 :(得分:0)

这对我有用。 使用Environment.GetEnvironmentVariable(“USERNAME”)获取当前登录用户名。

链接:https://www.c-sharpcorner.com/uploadfile/puranindia/the-environment-class-in-C-Sharp/

答案 3 :(得分:0)

在IIS中,请为您的应用程序。 启用ASP.NET模拟功能 enter image description here