在asp.net中添加到查询字符串的新行和空格

时间:2013-09-26 15:20:31

标签: c# asp.net web query-string

我正在处理的页面上遇到一个相当奇怪的问题。
这是我正在处理的地址:

  

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>

这导致了问题:)

1 个答案:

答案 0 :(得分:0)

对我来说工作正常。
可能是你的服务器有问题。

Label1.Text = Request.QueryString.ToString();  

我刚用过这个   但如果我像你说的那样设置空格我会得到%5cr%5cn++++++&ACTION=FLIGHTHOTEL