2013-12-18 68 views
2

我正在使用Windows身份验证托管ASP.Net应用程序,我需要获取各种个性化任务的用户名。在主机上的目录设置为具有Windows身份验证和web.config文件还具有: -用户在托管ASP.Net应用程序中难以区分

<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          '' 

感谢答案herehere,并here,等等。这些都不能区分输入的各种用户名。

还有什么我可以尝试在代码中获取名称(或名称的一些代理)?有什么我可以检查在web.config?或者,如果我需要与主持人讨论这个问题,我是否可以提出任何明智的问题?

编辑我已经使用主机的IIS对话设置了应用程序目录和.Net版本。

+0

你是否使用IIS托管? – Amber

+0

@琥珀,是的,我相信。 –

+0

您应该检查您是否仅在IIS管理器中启用Windows身份验证。因为它目前使用'网络服务'(推测)应用程序池设置。 – Amber

回答

1

您需要将IIS设置为仅使用Windows身份验证,然后使用Page.User.Identity.Name或类似命令来获取Windows用户名。

在“身份验证”窗格中,将Windows身份验证设置为“已启用”并禁用匿名身份验证。