【问题标题】:UrlEncode will not encode anythingUrlEncode 不会对任何内容进行编码
【发布时间】:2015-04-27 15:36:53
【问题描述】:

我对 ASP.net 比较陌生,所以我可能会犯一个小学生错误,但是我无法让 Server.UrlEncode 工作(我在 Web 表单项目中使用 vb.net)。

我在原始表单上的按钮单击事件中使用此代码

Dim url As String
url = "CustomerDetailsUD.aspx?ID=" & Server.UrlEncode(cuIDSelected)
Response.Redirect(url)

在这种情况下 cuIDSelected 是“106”

目标页面网址是http://localhost:xxxxx/CustomerDetailsUD?ID=106

有什么想法吗?谢谢!

【问题讨论】:

  • 预期的编码值是多少?
  • UrlEncode 将空格变成 %20 之类的东西,它不会将数字变成其他东西。你真的想在这里看到什么?
  • @mason 不确定我需要知道这个吗?我有一个 106 的变量,我想在我的目标页面加载事件中获取它(从数据库中获取记录) - 使用 UrlDecode。出于安全原因,我只是不希望用户能够在其 url 中看到 ID=106。
  • @RonBeyer - 好吧,我误解了 urlencode 的工作原理。有人建议加密/解密字符串的方法吗?
  • 为什么不使用会话变量呢? msdn.microsoft.com/en-us/library/ms178581%28v=vs.140%29.aspx 那你就不用担心加解密了,会话状态一直在服务器上。

标签: asp.net vb.net visual-studio


【解决方案1】:

我的猜测:您将编码与加密混淆了。

Server.UrlEncode 不加密,因为 106 是一组有效的字符,所以没有任何改变,请尝试向 cuIDSelected 添加一个无效的 url 符号,例如 '&' 以查看它的作用

【讨论】:

  • 是的——完全正确。谢谢。告诉过你这是一个小学生的错误!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-06-15
  • 2012-09-14
  • 2012-01-07
  • 1970-01-01
  • 1970-01-01
  • 2012-01-07
  • 1970-01-01
相关资源
最近更新 更多