用户在托管ASP.Net应用程序中无法区分

时间:2013-12-18 15:36:19

标签: c# asp.net security

我正在使用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                                        ''

感谢答案hereherehere等。这些都不区分输入的各种用户名。

还有什么我可以在代码中尝试获取名称(或名称的代理)吗?我可以在web.config查看任何内容吗?或者,如果我需要与主持人讨论此事,我可以问一些明智的问题吗?

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

1 个答案:

答案 0 :(得分:1)

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

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