我正在处理的页面上遇到一个相当奇怪的问题。
这是我正在处理的地址:
http://localhost:49726/Redirect.aspx?ACTION=FLIGHTHOTEL
现在在Page_Init中为Redirect.aspx我正在访问Request.QueryString.ToString()
,我得到的值是这样的:
%0d%0a++++++++&ACTION=FLIGHTHOTEL
额外空格(+)和换行符/标签(%0d%0a)来自哪里?
要确认Request.RawUrl
不包含这些额外的空格,而Request.Url
会这样做:
http://localhost:49726/Webpages/Redirect.aspx?\r\n_______&ACTION=FLIGHTHOTEL
(为了可见性,我用_
替换了空格)
有没有一种简单的方法可以不在那里?我并不热衷于子串,因为我不确定如何这是静态的还是随机的......
感谢。
---编辑---
哈哈,有趣的事。我查看了我的web.config并找到了捕获url的行,并在加载任何页面之前重定向到另一行,如下所示: <RewriterRule>
<LookFor>~/redirect.aspx?([^\/]*)</LookFor>
<SendTo>~/Webpages/Redirect.aspx?$1</SendTo>
</RewriterRule>
现在这个特殊的行有一些额外的新行和空格,如下所示:
<RewriterRule>
<LookFor>~/redirect.aspx?([^\/]*)</LookFor>
<SendTo>
~/Webpages/Redirect.aspx?$1
</SendTo>
</RewriterRule>
这导致了问题:)
答案 0 :(得分:0)
对我来说工作正常。
可能是你的服务器有问题。
Label1.Text = Request.QueryString.ToString();
我刚用过这个
但如果我像你说的那样设置空格我会得到%5cr%5cn++++++&ACTION=FLIGHTHOTEL