gpt4 book ai didi

c# - 在具有不同根相对路径的代理后面运行 ASP.NET MVC 应用程序

转载 作者:行者123 更新时间:2023-11-30 13:05:51 27 4
gpt4 key购买 nike

我在处理在代理后面运行的 ASP.NET MVC 应用程序中的路径时遇到问题。

例如,我们的 IIS 应用程序根路径是 http://server/MyApp/

意味着所有使用应用程序根目录的 url(“~/”,Url.Action(“MyAction”,“MyController”))都被解析为“/MyApp”

现在我们在转发所有请求的代理服务器后面运行,但需要您通过如下 URL 访问应用程序:“/安全/代理/RubbishUrl/MyApp”

因为代理 url 只在客户端可用,所以我想到创建一个带有路径前缀的 cookie,并将其插入到服务器上每个生成的 URL 之前。

现在的问题是,修改解析/发送到客户端(资源、 Controller 操作、图像等)的每个 URL 的最佳代码位置是什么?

应用程序中的每个路径都使用 MVC 方法(Url.Content、Url.Action 等)解析。

更新:不再积极寻找答案(尽管仍然对适当的解决方案感兴趣)

大多数时候,代理会进行自己的 URL 转换,但在这种情况下,代理服务器会忽略以 JSON 格式传输的路径,并对其进行处理。

我现在的“解决方案”只是不传递 JSON 中的路径,而是:

  • 在 JSON 请求中使用正确的 ID 和值
  • 在 HTML 的 URL 中创建模板(已正确解析),
  • 用 JSON 请求中的值替换 URL 模板中的 ID 和值

此方法实际上是 IMO 传递 URL 的一种“更简洁”的方法。

最佳答案

您可以创建自己的 asp.net mvc Controller 工厂,以决定哪个 Controller 和操作将根据请求的 url 提供响应。检查此 url 以获得有关如何执行此操作的好博客文章 - http://nayyeri.net/custom-controller-factory-in-asp-net-mvc .

关于c# - 在具有不同根相对路径的代理后面运行 ASP.NET MVC 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2591490/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com