2010-07-07 41 views
1

我們目前有一個問題,在我們的舞臺服務器上,某些頁面上存在的鏈接具有完整的url而不是相對路徑,例如它們可能位於http://stage.host.com/app/webpage1.aspx,鏈接可能存在http://www.host.com/app/webpage2.aspx而不是http://stage.host.com/app/webpage2.aspx保持用戶在同一主機上,開發環境

爲了嘗試解決這個問題,我們添加了一個響應過濾器來去除錨標記的主機名,以使它們變成相對的。雖然這在大多數情況下都能很好地工作,但仍然存在一些用戶重定向到與服務器端代碼完全鏈接的問題,例如, Response.Redirect

我想讓您的傢伙想法解決這個問題的最佳方法,我想也許HttpModule可能有所幫助?

謝謝,拉吉。

+0

HTTPModule應該在這種情況下幫助你。 – Kangkan 2010-07-07 11:56:35

回答

1

如果你想限制任何重定向到其他主機,你可以用這個。

0

通常,主機名可以在Web應用程序中配置,甚至可以從Web服務器環境自動確定。在HttpModule

public class Global : System.Web.HttpApplication 
{ 
    //... 

    protected void Application_EndRequest(object sender, EventArgs e) 
    { 
     if (this.Response.StatusCode == 302) this.Response.RedirectLocation = Relativize(this.Response.RedirectLocation); 
    } 

    //... 
} 

或者幾乎相同的代碼: