asp.net-core - 使用中间件设置响应的虚拟路径

asp.net-core - Set response's virtual path with middleware

设置

问题

我的中间件正确地将请求路由到页面。基于 headers,对 https://second-domain.com/some/path/PageX 的请求正确检索了位于 https://first-domain.com/PageX 的资源。

但是,使用 ASP.NET 根路径字符 (~) 的 PageX 的 URL 正在解析为 /,因此客户端会尝试访问资源https://second-domain.com/ 不存在。

例如,如果 PageX.cshtml 有一个 <img src="~/myImage.png> 标签,客户端的浏览器将尝试检索资源 https://second-domain.com/myImage.png 而不是 https://second-domain.com/some/path/myImage.png

问题

有没有办法通过 ASP.NET-Core middleware 操纵请求 and/or 响应,以便动态解析 ASP.NET 根路径 (~)?

换句话说,我正在尝试通过 IIS/Azure.

动态设置虚拟路径而不使用 infrastructure-defined 虚拟路径

这可以通过从中间件设置 context.Request.PathBase 来完成。