首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我的IgnoreRoute不能工作?

为什么我的IgnoreRoute不能工作?
EN

Stack Overflow用户
提问于 2011-08-23 13:27:11
回答 2查看 5.7K关注 0票数 4

我想阻止用户访问我的"~/Content/...“文件夹中,我在"Global.asax.cs“中编写了如下代码,并将这行代码放在每个其他路由routes.IgnoreRoute("Content/{*pathInfo}");的顶部

但它不起作用。事实上,用户可以通过在浏览器中输入URL来查看内容文件夹中的每个文件。我是不是遗漏了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-08-23 13:34:08

你是怎么知道它不起作用的?举个例子。

您可能已将其放在路由表的最后。因此,请尝试将其向上移动,以便将其添加到路由表first中。路由集合是路由的有序列表。

也可以试试这个:Routes.IgnoreRoute("Content/");,但是你的ignore版本也是正确的,它应该可以工作。

最后,我不知道你说用户可以看到Content文件夹的所有内容是什么意思:这不是重点吗?用户必须能够从文件夹中下载文件,我们通常只需要MVC来忽略来自框架的请求,这样IIS就可以直接为这些文件提供服务。

或者您的意思是目录浏览已启用,而您想要禁用它:在这种情况下,转到IIS管理器,并选择您的网站,查找目录浏览选项并禁用它,如here所示。

票数 4
EN

Stack Overflow用户

发布于 2011-08-23 14:31:27

您的问题不能通过路由约束来解决。在处理请求时有3个重要的步骤:

  1. IIS收到请求。
  2. IIS监视文件系统并搜索与文件
  3. 的直接对应关系(如果IIS未找到任何文件)-它向ASP.NET MVC发出请求以进行处理。

因此,您需要将文件夹安全性配置为禁止直接访问文件,但允许以here身份访问应用程序。但我不建议保护文件夹,它应该是共享的。我不认为你的网站不应该显示图片:)如果你有一些受保护的内容,你需要创建另一个文件夹。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7156621

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档