【问题标题】:Config IIS or Web.config to serve all files in a specific folder only配置 IIS 或 Web.config 以仅提供特定文件夹中的所有文件
【发布时间】:2015-07-29 06:01:57
【问题描述】:

我正在开发一个 CDN 服务器,它是一个普通的 MVC 项目。但是,在项目文件夹中,假设我有 CDN 文件夹,并且我希望每个人都可以访问其中的任何文件,具有任何文件扩展名,并且仅限于 CDN 文件夹。也就是说,我不希望我的 web.config 文件或 Views 文件夹被暴露。

有没有办法在不使用自定义ControllerRouteHandler 的情况下做到这一点?

编辑:正如指定的那样,我正在寻找在 IIS 或 Web.config 或其他地方在 Controller 或 RouteHandler 中编写代码的方法,因此它不是重复的。

按照 David Gunderson 的回答,这是我的 web.config 允许 CDN 文件夹:

  <location path="CDN">
    <system.webServer>
      <staticContent>
        <mimeMap fileExtension="*" mimeType="application/octet-stream"/>
      </staticContent>
    </system.webServer>
  </location>

【问题讨论】:

    标签: c# asp.net-mvc file asp.net-mvc-5


    【解决方案1】:

    您可以在 Web 配置中为您网站的特定子目录配置位置设置:

    https://msdn.microsoft.com/en-us/library/ms178692%28v=vs.140%29.aspx

    如果放置在您的根 web.config 中,以下内容将授予所有用户访问 CDN 文件夹内容的权限。即使您为站点的其余部分启用了表单身份验证,它也会授予匿名用户访问权限:

        <location path="CDN">
            <system.web>
                <authorization>
                    <allow users="*"/>
                </authorization>
            </system.web>
        </location>
    

    【讨论】:

    • 太棒了!非常感谢。包括搜索允许类型扩展,我做到了。更新了我在问题中的解决方案。
    • 太棒了。祝你好运。
    猜你喜欢
    • 1970-01-01
    • 2014-10-21
    • 1970-01-01
    • 2011-01-19
    • 2016-10-02
    • 2014-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多