Сохранение пользователей на одном хосте, среда разработки

#c# #asp.net

#c# #asp.net

Вопрос:

В настоящее время у нас возникла проблема, из-за которой на наших серверах stage ссылки, существующие на определенных страницах, имеют полный 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 это поможет?

Спасибо, Радж.

Комментарии:

1. HttpModule должен помочь вам в этом случае.

Ответ №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 .

Ответ №2:

Обычно имя хоста настраивается в веб-приложении или даже автоматически определяется из среды веб-сервера.