在我目前正在建设的网站中,我们需要大量的动态重定向,以保持网站各部分的流量。Response.Redirect偶尔会忽略URL编码
我目前使用response.redirect来实现这一点,重定向URL是在各种按钮的回发方法后面的代码中动态生成的。
在95%的情况下,这很好,但是我注意到有时URL被破坏得很厉害。
在一种情况下,url是URLEncoded,因为其中一个参数有时包含&符号,但是重定向忽略了这一点并重定向到非编码版本。
即 “page.aspx?适量=第一%26秒&适量= 2个& QS = 3” 正被重定向至 “page.aspx?适量=第一&第二& QS = 2个& QS = 3”
发生的另一种情况是响应完全被剥离了&符号,导致频繁崩溃。
即 “page.aspx?QS = 1个& QS = 2个& QS = 3” 被重定向到 “page.aspx?QS = 1QS = 2QS = 3”
没有人有任何想法,为什么无论是这些情景可能会发生?
议决
对不起,这是由于我自己的白痴,从管理重定向到非管理员(不要问),而不是把&再次或URL编码的背部上几页。
(捂脸)
我使用的是.NET 3.5,并且在将URL传递给response.redirect方法之前,我手动对URL进行了任何用户输入编码。我知道它是自己的内部编码和解析,如果是这种情况,那么这个问题将包含在网站中的所有重定向链接中,而不仅仅是4或5的错误操作! – 2009-09-24 15:58:29