我正在使用Windows身份验证的托管ASP.Net应用程序,我需要获取各种个性化任务的用户名。主机上的目录设置为具有Windows身份验证,web.config
文件也具有: -
<authentication mode="Windows">
</authentication>
在里面。我在应用程序中尝试了各种方法来获取具有以下结果的用户名: -
Source Result
System.Web.HttpContext.Current.Request.LogonUserIdentity.Name 'EZ\urlname_a'
System.Environment.UserName 'NETWORK SERVICE'
System.Web.HttpContext.Current.User.Identity.Name ''
this.Request.ServerVariables["LOGON_USER"] ''
this.Request.ServerVariables["AUTH_USER"] ''
this.User.Identity.Name ''
感谢答案here,here和here等。这些都不区分输入的各种用户名。
还有什么我可以在代码中尝试获取名称(或名称的代理)吗?我可以在web.config
查看任何内容吗?或者,如果我需要与主持人讨论此事,我可以问一些明智的问题吗?
编辑我已使用主机的IIS对话设置了应用程序目录和.Net版本。
答案 0 :(得分:1)
您需要将IIS设置为仅使用Windows身份验证,然后使用Page.User.Identity.Name或类似内容来获取Windows用户名。
在“身份验证”窗格中,将“Windows身份验证”设置为“已启用”并禁用匿名身份验证。