出现此问题的原因是如果您使用匿名访问安全来访问 .aspx 页,则不会填充 ServerVariables 集合中与身份验证相关的变量。如果您在 Web.config 文件的部分中授予匿名用户访问权限,也会出现此问题。
要在使用除无以外的任何身份验证模式时填充 LOGON_USER 变量,您可以在 web.config 部分中拒绝匿名用户的访问。
只需将 Web.config 文件中的身份验证模式更改为 None 以外的任何内容。例如,Web.config 文件中的以下条目将身份验证模式设置为基于表单的身份验证:
<authentication mode="Forms" />
<!-- To deny access to the Anonymous user in the Web.config file, use the following syntax: --!>
<authorization>
<deny users = "?" /> <!-- This denies access to the Anonymous/unregistered user -->
<allow users ="*" /> <!-- This allows access to all registered users -->
</authorization>
我不知道为什么这在 VS 2010 和 2012 之间会有所不同,但我以前也遇到过这种情况,我使用上述步骤进行了补救。正如我所说,只需检查您的 web.config 文件!
希望这能回答你的问题!