Запрос.URL удваивает параметры строки запроса?
Я запрашиваю такой URL:
http://mylocalsite/virtual/page.aspx?var1=1&var2=2&var3=3
Я использую FormsAuthentication
и не прошел проверку подлинности, поэтому я перенаправлен. Вот что показывает строка расположения браузера:
http://mylocalsite/virtual/login.aspx?ReturnUrl=/virtual/page.aspx?var1=1&var2=2&var3=3
В событии pageload входа в систему.aspx я пытаюсь проверить URL двумя способами:
Dim example1 as String = Request.Url
Dim example2 as String = Request.Url.Scheme & "://" & Request.Url.Authority & Request.RawUrl
Вот что я получаю:
' Example 1
http://mylocalsite/virtual/login.aspx?ReturnUrl=/virtual/page.aspx?var1=1&var2=2&var3=3&var1=1&var2=2&var3=3
' Example 2 - is URLEncoded
http://mylocalsite/virtual/login.aspx?ReturnUrl=%2fvirtual%2fpage.aspx%3fvar1%3d1%26var2%3d2%26var3%3d3%26var1%3d1%26var2%3d2%26var3%3d3
Почему моя строка запроса удваивается в обоих этих примерах?
1 ответ:
Это сделано специально, чтобы у вас был доступ к этим параметрам строки запроса во время входа в систему. Эти параметры также должны быть сохранены для перенаправления после входа в систему - таким образом, они также кодируются url. Смотритеанатомию формы Authentication ReturnUrl для более подробного объяснения.