保持用户在同一主机,开发环境中

时间:2010-07-07 11:51:25

标签: c# asp.net

我们目前遇到一个问题,即在我们的舞台服务器上,某些网页上存在的链接具有完整的网址而不是相对路径,例如它们可能位于http://stage.host.com/app/webpage1.aspx上,并且可能存在{{}的链接3}}而不是http://www.host.com/app/webpage2.aspx

为了尝试解决这个问题,我们添加了一个响应过滤器来去除锚标记的主机名,以便它们变得相对。虽然这适用于大多数情况,但仍有一些问题,用户重定向到服务器端代码的完整链接,例如Response.Redirect

我想让你的家伙了解解决这个问题的最佳方法,我想也许HttpModule可能会有所帮助?

谢谢,Raj。

2 个答案:

答案 0 :(得分:1)

如果您尝试限制任何重定向到其他主机,可以使用:

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);
    }

    //...
}

HttpModule中的几乎相同的代码。

答案 1 :(得分:0)

通常,主机名可在Web应用程序中配置,甚至可以从Web服务器环境自动确定。