簡體   English   中英

在具有不同根相對路徑的代理后面運行ASP.NET MVC應用程序

[英]Running ASP.NET MVC application behind a proxy with different root relative path

我在代理后面運行的ASP.NET MVC應用程序中遇到問題。

我們的IIS應用程序根路徑例如是http:// server / MyApp /

意味着所有使用應用程序根目錄的URL(“〜/”,Url.Action(“MyAction”,“MyController”))都被解析為“/ MyApp”

現在我們在代理服務器后面運行,轉發所有請求,但要求您通過以下URL訪問應用程序:“/ Secury / Proxy / RubbishUrl / MyApp”

因為代理URL僅在客戶端上可用,所以我想到創建一個帶有路徑前綴的cookie,並在服務器上的每個生成的URL之前插入它。

現在的問題是,代碼中修改每個已解析/發送到客戶端的URL(資源,控制器操作,圖像等)的最佳位置是什么?

應用程序中的每個路徑都使用MVC方法(Url.Content,Url.Action等)解析。

更新:不再主動尋找答案(盡管仍然對正確的解決方案感興趣)

代理服務器大多數時間都會執行自己的URL轉換,但在這種情況下,代理服務器會忽略以JSON格式傳輸的路徑,並對它們進行處理。

我現在的'解決方案'就是不在JSON中傳遞路徑,而是:

  • 在JSON請求中使用正確的ID和值
  • 在HTML中的URL中創建模板(已正確解析),
  • 使用JSON請求中的值替換URL模板中的ID和值

這種方法實際上是一種非常“清潔”的方式IMO然后傳遞URL。

您可以創建自己的asp.net mvc控制器工廠,根據請求的URL決定哪個控制器和操作將響應。 請查看此URL以獲取有關如何執行此操作的好文章 - http://nayyeri.net/custom-controller-factory-in-asp-net-mvc

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM