配置 IIS 或 Web.config 以仅提供特定文件夹中的所有文件

Luk*_* Vo 4 c# asp.net-mvc file asp.net-mvc-5

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

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

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

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

  <location path="CDN">
    <system.webServer>
      <staticContent>
        <mimeMap fileExtension="*" mimeType="application/octet-stream"/>
      </staticContent>
    </system.webServer>
  </location>
Run Code Online (Sandbox Code Playgroud)

Dav*_*son 5

您可以在 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>
Run Code Online (Sandbox Code Playgroud)