2

я запросить URL, как это:Request.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 из login.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 

Почему моя строка запроса удваивается в обоих этих примерах?

+0

IIS = 7.5.7600.16385 на локальном хосте (Windows 7 SP1) или в реальном времени (Windows Server 2008 R2 SP1) и пул приложений = .NET v4.0 Интегрированный конвейер – wweicker

ответ

1

Это делается по дизайну, поэтому у вас есть доступ к тем параметрам querystring во время входа в систему. Эти параметры также должны быть сохранены для перенаправления после входа в систему - так что они также закодированы по URL-адресу. Дополнительную информацию см. В разделе Anatomy of Forms Authentication ReturnUrl.

Смежные вопросы