我创建了一个使用Windows Identity Foundation进行身份验证的简单MVC 4网站。使用默认文件访问静态内容时,身份验证工作正常,但在访问特定文件时,无需进行身份验证即可授予用户访问权限。例如,静态内容的路径: https://test.wgint.com/help/robohelp/fmsuserguide 转发到AD FS服务器进行身份验证 但 https://test.wgint.com/help/robohelp/fmsuserguid/login_support.htm 允许访问而无需转发到AD FS服务器。
路径'robohelp'是MVC站点之外的虚拟目录,不直接由MVC代码管理。
网络配置由“身份和访问”工具设置:
<system.web>
<authorization>
<deny users="?" />
</authorization>
<authentication mode="None" />
我无法弄清楚为什么直接访问虚拟目录中的静态文件不受保护,但是对虚拟目录中的路径的访问受到保护。有什么想法吗?
答案 0 :(得分:2)
IIS中的处理程序映射是什么样的?
静态文件应与.aspx具有相同的映射。否则,他们将无法被定向到WIF处理程序。
此外,runAllManagedModulesForAllRequests的设置是什么?
参考:Modules runAllManagedModulesForAllRequests=“true” Meaning。