我有一个asp.net Web表单应用程序,它为用户提供身份验证。我需要获取当前登录到Windows的用户的用户名。我使用以下方法检索了用户名:
我的问题是当我在IIS 7中托管应用程序时,用户名显示为syssai-sql。
我不知道该怎么做才能做到这一点。
提前感谢您的帮助。
答案 0 :(得分:3)
您不应该使用System.Environment.Username。这是为了获得服务器进程正在运行的身份。它在本地测试时“工作”的原因是它们是相同的,Web应用程序作为您的用户帐户运行。服务器的行为方式不同。
相反,请使用HttpContext.Current.User.Identity.Name
属性。在IIS中,确保为Windows身份验证设置了Web应用程序,并禁用了匿名身份验证。
答案 1 :(得分:0)
添加System.Security.Principal命名空间并尝试以下操作:
WindowsIdentity wi = HttpContext.Current.Request.LogonUserIdentity;
然后您可以访问各种属性,如
wi.Name