我请求这样的网址:
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
在login.aspx的PageLoad事件中,我尝试以两种方式检查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 :(得分:1)
这是通过设计完成的,因此您可以在登录期间访问这些查询字符串参数。还必须保留这些参数以便在登录后重定向 - 因此它们也是url编码的。有关更详细的说明,请参阅Anatomy of Forms Authentication ReturnUrl。