Всегда ли Response.Redirect (Request.Url.AbsolutePath) "безопасен"? - PullRequest
5 голосов
/ 29 июля 2011

Мне нужно перенаправить обратно на текущую страницу без каких-либо аргументов запроса.

Я только что нашел Request.Url.AbsolutePath, который выглядит так, как будто он предоставляет только билет для передачи на Response.Redirect().

Кажется, на моей машинке все работает нормально. Кто-нибудь знает какие-либо потенциальные проблемы с перенаправлением на значение этого свойства? Трудно подтвердить, что это «безопасно» во всех случаях.

Ответы [ 2 ]

2 голосов
/ 29 июля 2011

Это может быть проблемой, если вы «переписали» URL-адрес внутри. Например, пользовательский запрос "/team.aspx", но внутренне вы переносите выполнение или переписываете URL как "/page.aspx?id=137".

Лично я предпочитаю использовать Request.RawUrl (который всегда локальный), и вы можете удалить строку запроса.

Избавление от части узла запроса не является проблемой, потому что HTTP Redirect может быть путем к абсолютным путям ("/ foo / bar"), и браузер сохранит протокол, порт и имя узла.

0 голосов
/ 29 июля 2011

Я бы использовал Request.Url.OriginalString.

Абсолютный путь избавляет от главной части URL.

Взгляните на это: http://wdevs.blogspot.com/2009/03/url-properties-of-request-to-aspnet.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...