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

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

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

有没有什么方法可以在不使用自定义 ControllerRouteHandler 的情况下做到这一点?

编辑:按照指定,我正在 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>

最佳答案

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

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>

关于c# - 配置 IIS 或 Web.config 以仅提供特定文件夹中的所有文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30291237/

相关文章:

c# - 从 SqlDataReader 转换为 JSON

c# - 我应该将服务注入(inject)到我的 MVC View 中吗?

asp.net - 如何让asp.net不自动转义URL中的转义正斜杠?

Bash 脚本日志文件轮换

file - 如何在 session 自动加载的同时在 vim 中打开文件?

file - 在 Notepad++ 中合并文件

c# - 使用 NUnit Console Runner 运行一个文件夹下的所有测试

c# - 如何在 Unity 中设置单元测试并修复缺少的程序集引用错误?

c# - 使用 Selenium Webdriver 测试元素是否聚焦

css - MVC : which CSS class implements Html. EditorFor() 方法?