[英]How do I resolve a path relative to an ASP.NET MVC 4 application root?
[英]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中傳遞路徑,而是:
這種方法實際上是一種非常“清潔”的方式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.