【问题标题】:Why is IIS allowing access to static files on MVC site?为什么 IIS 允许访问 MVC 站点上的静态文件?
【发布时间】:2013-07-01 15:48:15
【问题描述】:

我创建了一个使用 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" />

我不明白为什么对虚拟目录中的静态文件的直接访问不受保护,但对虚拟目录中的路径的访问受到保护。有什么想法吗?

【问题讨论】:

    标签: asp.net-mvc wif


    【解决方案1】:

    IIS 中的处理程序映射是什么样的?

    静态文件应具有与 .aspx 相同的映射。否则,它们将不会被定向到 WIF 处理程序。

    另外,runAllManagedModulesForAllRequests 的设置是什么?

    参考:Modules runAllManagedModulesForAllRequests=“true” Meaning.

    【讨论】:

    • 未设置。当我设置 runAllManagedModulesForAllRequests="true" 时,身份验证开始像我需要的那样工作。谢谢。
    • 根据 Colin Farr 的一个 blog post,在让 MVC 路由正常工作时不要使用 runAllManagedModulesForAllRequests="true"。他建议专门启用 UrlRoutingModule-4.0。
    猜你喜欢
    • 2014-06-01
    • 1970-01-01
    • 2017-05-08
    • 1970-01-01
    • 2014-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多