我正在处理的页面上遇到了一个相当奇怪的问题。
这是我正在处理的地址:
http://localhost:49726/Redirect.aspx?ACTION=FLIGHTHOTEL
现在在我正在访问的 Redirect.aspx 的 Page_Init 中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>
这导致了问题:)