下面显示的示例
http请求显示在下方
/_layouts/Authenticate.aspx?来源=http://ourwebsite.com/somepage.aspx?paramapp=testapp¶mdata=测试数据
重定向发生得很好,但除了第一个之外的所有查询字符串都会被截断。
在上面的例子中,paramdata被截断
我在开箱即用的Authenticate.aspx.中也遇到了同样的问题
这就是我们所做的。假设你的URL看起来像这个
/SomePage.aspx?Param1=值1&Param2=value2&Param3=值3&。。。。
-
创建了一个Param对象
{"Param1":"value1","Param2":"value2","Param3":"value3",…
} -
创建参数的JSON字符串。您可以使用JSON.stringify()函数。对此进行编码并发送参数
JSON.stringify({"Param1":"value1","Param2":"value2","Param3":"value3"})
字符串:"{"Param1":"value1","Param2":"value2","Param3":"value3"}">
编码字符串:%22%7B%22Param1%22%3A%22value1%22%2C%22Param2%22%3A22value2%22%2C+22Param3%22%3A+22value3%22%7D%22
- 将其作为参数传递到目标页面…/SomePage.aspx?参数=%22%7B%22Param1%22%3A%22value1%22%2C%22Param2%22%3A+22value2%22%2C+22Param3%22%3A22value3%22%7D%22
这应该通过Authenticate.aspx,您将能够检索参数。在页面加载时,您可以处理对象并获取各个参数值。
希望这能有所帮助。
我还没有机会确认这一点,但我总是看到源信息HTML在放入URL时编码。也许这将是一个很好的开始。如果这不起作用,那么请发布您正在使用的代码,这样我们就可以看到您是如何做到这一点的。
在一个相关的注意事项上,你在源中包含了完整的地址,你真的不应该这样做,因为它会让你的用户重定向攻击。Troy Hunt在这里提供了关于这个问题以及如何解决这个问题的详细解释。