我有一个在Win Server 2k3(IIS6)下运行的混合经典ASP + ASP.NET MVC 4应用程序,我们已将其升级为使用MVC 4.
ASP应用程序通过虚拟目录附加到.NET应用程序。它们在同一个应用程序池中运行(如果这很重要)。这个特定的应用程序是一个管理控制面板,并使用基本身份验证:
在升级项目之前,当访问虚拟文件夹的URL时,浏览器会显示一个登录提示,我在其中输入我的域限定用户名和密码。然后,ASP代码通过Request.ServerVariables("AUTH_HEADER")
检索用户名,将其与存储在数据库中的应用程序级权限列表进行比较,并根据该名称启用或禁用管理站点中的功能。
升级项目后,我仍然会收到登录提示,但Request.ServerVariables("AUTH_USER")
会返回一个空字符串。
我已将旧项目添加到新网站中,以便我可以在同一台服务器上并行运行它们。旧代码继续工作。新代码拒绝。每个版本的.NET应用程序中的admin
虚拟目录指向磁盘上的相同物理位置,并且两个.NET应用程序中的文件夹的身份验证配置相同。
连连呢?请注意,MVC 4应用程序使用的是.NET 4框架,而不是.NET 4.5,它未安装在服务器上。
注意,虽然屏幕截图中的default domain
字段为空,但已正确配置。我出于显而易见的原因将其从图像中删除了。
答案 0 :(得分:0)
当您将应用程序配置为使用Forms身份验证而不是Windows身份验证时,可以获取Request.ServerVariables(“AUTH_USER”)。如果是Windows身份验证,则应使用Request.ServerVariables(“LOGON_USER”)