在代理服务器后运行具有不同根相对路径的ASP.NET MVC应用程序

4
我在一个运行在代理后面的ASP.NET MVC应用程序中遇到了路径问题。
我们的IIS应用程序根路径是例如http://server/MyApp/,这意味着使用应用程序根目录(“〜/”,Url.Action(“MyAction”,“MyController”))的所有URL都解析为“/MyApp”。
现在,我们正在代理服务器后面运行,代理服务器转发所有请求,但需要通过以下URL访问应用程序:“/Secury/Proxy/RubbishUrl/MyApp”。
因为代理URL仅在客户端上可用,所以我想创建一个带有路径前缀的cookie,并在每个生成的URL之前插入它。
现在的问题是,在代码中修改每个已解析/发送到客户端的URL(资源、控制器操作、图像等),最佳位置是什么?
应用程序中的每个路径都是使用MVC方法(Url.Content、Url.Action等)解析的。
更新:不再积极寻找答案(虽然仍然对正确的解决方案感兴趣)
大多数情况下,代理会执行自己的URL转换,但在这种情况下,代理服务器忽略在JSON中传输的路径,并且它们被处理。

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

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

在我看来,这种方法比传递URL更加“清晰”。


好的,我删除了,也许其他人会认为这个问题没有得到解答并给出更好的答案。 - Aristos
1个回答

0

1
不好意思,它不允许我更改/修复发送给客户端的URL。请注意,在IIS服务器上,代理生成的URL没有任何概念,就IIS而言,URL仍然只是http://server/MyApp/。 - Wiebe Tijsma

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接