ASP.NET 捕获所有路由和转义正斜杠

2024-02-18

我使用 MVC 的包罗万象的路由来提供应用程序中资源的路径。它看起来像这样:

_routes.MapRoute(null, "Resource/{*resourcePath}", new { 
    controller = "Resource", 
    action = "Open" 
});

动作是这样的

public ActionResult Open(string resourcePath) {
    string[] path = resourcePath.Split('/');
}

用一个漂亮且友好的 URL 来点击它,效果很好

/Resource/Path/To/Resource  
    path = ["Path", "To", "Resource"]

但是,当我的资源名称中带有正斜杠(当然,我会转义)时,它将转义的斜杠视为路径的一部分

/Resource/Path/To/Resource%2FWith%2FSlashes  
    path = ["Path", "To", "Resource", "With", "Slashes"]
    I expected ["Path", "To", "Resource/With/Slashes"]

我尝试了双重转义,结果却让 ASP.NET 出于安全原因抱怨双重转义,而且我认为我不应该打开那个蠕虫罐头。

有什么方法可以使包罗万象的路线不逃避斜杠吗?


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ASP.NET 捕获所有路由和转义正斜杠 的相关文章

随机推荐

  • 如何从 gem 资产中覆盖单个文件来进行资产:预编译?

    情况 我使用带有自己的 JavaScript 和样式表资源的 gem 这个 gem 使用标准的 application js 和 application css 清单来要求其所有资产 gem app assets javascripts g
  • System.setErr() 干扰 Logger

    在较大的程序中 我使用静态java util logging Logger实例 但重定向System err连续到几个不同的文件 这Logger第二次尝试重定向时无法记录System err 这是一个显示问题的测试程序 import jav
  • 更改收件人短信的“发件人”字段

    我希望短信的收件人看到我的公司名称 而不是电话号码 这怎么可能 我目前正在使用 Twilio 但我愿意接受涉及其他服务的建议 对于那些看过 philnash 的答案但仍然遇到问题的人 请阅读本文 我正在使用 twilio ruby gem
  • 预加载的图像再次加载

    我正在预加载我的图像componentDidMount像这样 photos forEach picture gt const img new Image img src picture url 但是当我尝试像这样插入图像时 在另一个组件中
  • 如何在 C# 中迭代​​ Collection 时添加或删除对象

    我试图在迭代集合时删除对象 但我遇到了例外 我怎样才能实现这个目标 这是我的代码 foreach var gem in gems gem Value Update gameTime if gem Value BoundingCircle I
  • 出现未捕获类型错误:将 Browserify 与 Nutritionix NodeJS 客户端库一起使用时,fs.readdirSync 不是一个函数

    我正在尝试使用 Node 构建一个演示应用程序 但我不断收到未捕获的类型错误 fs readdirSync 不是函数尝试使用 Nutrionix NodeJS 客户端库时出错 https github com nutritionix nod
  • SAP 通过 VBA 提取到 EXCEL 内存不足

    我正在尝试通过我记录的 SAP 脚本将 SAP 事务提取到 txt 文档中 最后将其提取到我的 Excel 工作表中 当我在 SAP 中运行脚本时 它会通过将值复制到我的 txt 文档中来工作 所以看来我的问题是 excel 中的宏没有激活
  • 如何使用 sed/awk 提取两个模式之间的文本

    我知道这个问题已经被问了 1000 次了 但是我读了很多类似的问题 但仍然没有找到正确的方法来做到这一点 我需要从如下所示的行中提取一个数字 version 4 9 123M info version 2034 2 description
  • 如何对 Eloquent 子查询进行排序

    我有两个连接的表 团队和成员 这些模型通过 n m 关系连接 在我的团队视图中 我将创建一个 foreach 循环来获取所述团队的成员 如下所示 foreach team gt teammember as member member gt
  • 如何检测ListView Item的位置?

    如何根据列表视图项目在屏幕上的位置向其添加填充 例如 如果 listView 项位于屏幕中间 我希望将其内边距增加 10 点 如果 listView 项位于屏幕顶部附近 我希望将其内边距增加 15 点 您可以通过附加一个来实现这一点Scro
  • 安卓 WifiLock 无法使用?

    我需要每 x 分钟通过 WiFi 和 HTTP 从本地网络上的服务器提取数据 服务在后台运行 我使用 AlarmManager 来触发查询 设备上的 Wifi 睡眠策略设置为 从不 问题是 设备在屏幕关闭时进入睡眠状态 并且 wifi 锁似
  • 在不使用 $rootScope 的情况下使用 Angular ui 路由器防止 stateChange

    我的用户可以离开状态 但在我想显示模式对话框 你想保存吗 之前 仅当用户数据脏时才意味着已更改 我不想要的是将 EditController 中的 isDirty 属性粘贴到 rootScope 转到 stateChangeStart 事件
  • 如何使用复合文字来表示具有任意基数的“fprintf()”多个格式化数字?

    我想将多个数字转换为某种表示形式 然后使用的标志 宽度和精度 printf 说明符 首选是避免全局或static缓冲区 关键问题似乎是如何提供char 对于每个转换后的数字 fprintf ostream some format foo i
  • 使用 2 种不同的配置运行 SSIS 包

    我们有一个名为 ExportData 的 SSIS 作业 它接受 ExportType 参数 ExportType 参数可以是 schedule 或 unschedule 我创建了名为 ExportType 的变量 并创建了 SSIS 配置
  • 在 d3.js 中合并数据

    我是 Pythonista 正在尝试学习 d3 js 微笑 我有一个带有套接字的服务器 我的页面订阅了它 服务器以 JSON 形式发送更新 id0 0 38 id1 0 70 id8 0 71 我写了以下简单的页面
  • 比较对象永远不会返回 true

    我试图比较相同类型的两个对象 在方法 doesHave 中 但我从未返回 true 这是我的代码 private ArrayList
  • Swift 数组到元组数组

    我有以下两个数组 let xaxis monday tuesday wednesday thursday friday let yaxis 1 2 3 4 5 我想将它们合并到一个数组中 如下所示 monday 1 tuesday 2 we
  • 使用 requestAnimationFrame 控制 fps?

    这好像是requestAnimationFrame是现在事实上的动画方式 它在大多数情况下对我来说效果很好 但现在我正在尝试做一些画布动画 我想知道 有什么方法可以确保它以特定的 fps 运行吗 我知道 rAF 的目的是为了获得始终如一的平
  • 更改 MySQL Workbench 查询中的注释字体颜色

    是否可以将字体颜色从浅灰色更改为更鲜艳的颜色 GET TODAY S EVENTS ONLY lt this is the font I want to change where event date CURDATE 我目前在 Window
  • ASP.NET 捕获所有路由和转义正斜杠

    我使用 MVC 的包罗万象的路由来提供应用程序中资源的路径 它看起来像这样 routes MapRoute null Resource resourcePath new controller Resource action Open 动作是