【问题标题】:Maximum length of a querystring in asp.netasp.net中查询字符串的最大长度
【发布时间】:2013-12-24 00:35:21
【问题描述】:

我知道查询字符串的最大长度因浏览器而异。 Internet Explorer 最多可以有 2048 个字符。

如果我在我的代码中执行 URLEncode,这些编码字符是否会被视为额外字符?

例如,假设我有两个文本框。在通过查询字符串传递文本框的值之前,我执行HttpUtility.UrlEncode(TextBox2.Text),然后通过查询字符串将这些文本框值传递到另一个网页。

假设 URL 可能如下所示:WebForm2.aspx?Username=Kutti&Password=Pa%26%26word

那个编码的东西,%26%26 会被当作 URL 中的额外字符吗?

换句话说,Pa%26%26word 是否会与 Pa&&word 中的相同字符?

【问题讨论】:

  • 如果你在页面之间传递大字符串,你可能想看看使用Session Variables。它使值隐藏(更好的安全性),并保持地址栏整洁(更好的用户)。
  • 或者更好的是,将它们发布在表单域中。
  • 我认为它计算了额外的编码字符,但这只是一种直觉。最好的办法是使用带有未编码字符的查询字符串进行测试,就在长度的限制下,然后再次尝试相同但已编码。
  • 你到底在问什么?额外的字符是额外的字符,它们计入浏览器的限制。在这种情况下询问 ASP.NET 是否有限制的唯一原因是您是否尝试执行 Server.Transfer

标签: c# asp.net query-string url-encoding


【解决方案1】:

是的,每个字符都会被计算在内,即使它是由于编码而产生的。

关于良好代码和安全性的建议。始终尝试限制您的密码,直到登录页面。检查用户的凭据并继续使用一些会话变量进行页面到页面的身份验证和授权。永远不要在 url 中传递密码,我什至不会通过 userId。

【讨论】:

    猜你喜欢
    • 2018-11-11
    • 2012-02-13
    • 2011-12-01
    • 2021-12-27
    • 2010-10-23
    • 2020-07-29
    • 2016-11-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多