Как прочитать переписанный URL-адрес в asp.net 3.5

Как прочитать переписанный URL. Если я не использую .aspx в своем переписанном URL-адресе, то «Request.RawUrl» не работает. Он возвращает исходный URL.

Пожалуйста, предложите, если у вас есть какое-либо решение для этого. Я использую Ionics Isapi Rewrite Filter (IIRF).

Например, если я перепишу:

http://<mywebsite>/users.aspx?id=12&name=amitava

to

http://<mywebsite>/profile/12/amitava

Теперь на той же странице в какой-то момент я хочу получить этот переписанный URL-адрес, чтобы указать URL-адрес возврата в ссылке для входа. Теперь ссылка для входа должна быть:

http://<mywebsite>/login.aspx?ReturnUrl=/profile/12/amitava

or

http://<mywebsite>/login.aspx?ReturnUrl=http://<mywebsite>/profile/12/amitava

Каков правильный способ добиться этого? Спасибо.


person Amitava Sengupta    schedule 22.11.2011    source источник


Ответы (2)


Для IIRF это называется исправлением и может быть достигнуто с помощью модификатора U.

Из руководства IIRF. :

U = сохранить исходный URL-адрес в серверной переменной HTTP_X_REWRITE_URL

Просто добавьте модификатор U к RewriteRule, для которого вы хотите сохранить исходный URL. Например:

RewriteRule ^yourexpression$ yourrewrittenurl [I,U,L] 

Затем в коде вашей страницы вы можете получить доступ к исходному URL-адресу следующим образом:

Request.ServerVariables("HTTP_X_REWRITE_URL")

См. также мой ответ здесь

person marapet    schedule 22.11.2011

Используете ли вы модуль перезаписи IIS? Если да, то HttpContext.Current.Request.RawUrl должен дать вам переписанный URL-адрес, а HttpContext.Current.Request.Url.OriginalString должен дать вам непереписываемый URL-адрес.

person LDJ    schedule 22.11.2011
comment
Я использую модуль перезаписи IIRF - person Amitava Sengupta; 22.11.2011
comment
Пробовал Request.RawUrl, но возвращает непереписанный URL - person Amitava Sengupta; 22.11.2011
comment
Хорошо, я получил ответ. Он здесь и работает «как получить первоначально запрошенный URL-адрес при использовании механизма перезаписи URL-адресов iirf»> stackoverflow.com/questions/3895956/ - person Amitava Sengupta; 22.11.2011