#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:
Обычно имя хоста настраивается в веб-приложении или даже автоматически определяется из среды веб-сервера.