将应用程序升级到MVC 4,AUTH_USER为空白

时间:2013-09-17 10:33:01

标签: asp.net security asp.net-mvc-4 asp-classic iis-6

我有一个在Win Server 2k3(IIS6)下运行的混合经典ASP + ASP.NET MVC 4应用程序,我们已将其升级为使用MVC 4.

ASP应用程序通过虚拟目录附加到.NET应用程序。它们在同一个应用程序池中运行(如果这很重要)。这个特定的应用程序是一个管理控制面板,并使用基本身份验证:

enter image description here

在升级项目之前,当访问虚拟文件夹的URL时,浏览器会显示一个登录提示,我在其中输入我的域限定用户名和密码。然后,ASP代码通过Request.ServerVariables("AUTH_HEADER")检索用户名,将其与存储在数据库中的应用程序级权限列表进行比较,并根据该名称启用或禁用管理站点中的功能。

升级项目后,我仍然会收到登录提示,但Request.ServerVariables("AUTH_USER")会返回一个空字符串。

我已将旧项目添加到新网站中,以便我可以在同一台服务器上并行运行它们。旧代码继续工作。新代码拒绝。每个版本的.NET应用程序中的admin虚拟目录指向磁盘上的相同物理位置,并且两个.NET应用程序中的文件夹的身份验证配置相同。

连连呢?请注意,MVC 4应用程序使用的是.NET 4框架,而不是.NET 4.5,它未安装在服务器上。

注意,虽然屏幕截图中的default domain字段为空,但已正确配置。我出于显而易见的原因将其从图像中删除了。

1 个答案:

答案 0 :(得分:0)

当您将应用程序配置为使用Forms身份验证而不是Windows身份验证时,可以获取Request.ServerVariables(“AUTH_USER”)。如果是Windows身份验证,则应使用Request.ServerVariables(“LOGON_USER”)