asp.net - 请修复此 vb.net 字符串

标签 asp.net vb.net

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim myRedirectUri As Uri
        myRedirectUri = myRedirectUri.Replace(vbCrLf, "")
        Me.Response.Redirect("http://softmania.in/Services/sms/sms?submit=submit&from=" & TextBox3.Text.ToString & "&" & "recipients=" & TextBox1.Text.Trim & "&" & "msg=" & TextBox2.Text.ToString & "&" & "Sendnow=" & "Send + Now")
End Sub

我有一个textbox2.text是多行的...

当我在多行文本框2中输入消息时,它会显示错误消息..

重定向 URI 不能包含换行符。

最佳答案

URL/URI 不能包含超过一行。例如,这不是一个有效的 URL:

http://www.yahoo.com/
some/
news.html

但这正是发生的情况,因为文本来自多行文本框。

这还暴露了另一个问题,即您必须对放入 URL 中的任何文本进行编码。否则,没有什么可以阻止用户输入类似“asdfasdfsdf&msg=zcxvzxcv&command=delete_everything”之类的内容,当在文本框中输入该内容时,将产生 http://softmania.in/Services/sms/sms?submit=submit&from=asdfasdfsdf&msg=zcxvzxcv&command=delete_everything ——你当然不希望这样。

特殊字符,如 & 和 ?和 = 以及空格和换行符需要为“escaped ”,您可以使用类似 UrlEncode 的函数来执行此操作,像这样:

Me.Response.Redirect("http://softmania.in/Services/sms/sms?submit=submit&from=" & HttpUtility.UrlEncode(TextBox3.Text.ToString) & "&" & "recipients=" & HttpUtility.UrlEncode(TextBox1.Text.Trim) & "&" & "msg=" & HttpUtility.UrlEncode(TextBox2.Text.ToString) & "&" & "Sendnow=" & "Send + Now")

关于asp.net - 请修复此 vb.net 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4406433/

相关文章:

javascript - 在 MVC 中维护页面加载上复选框的状态

vb.net - 使用前导空格格式化数值

vb.net - 解析、转换和 CType() 之间的区别

vb.net - 如何使用 Exuberant Ctags 为 VB.NET 文件创建标签?

vb.net - 如何在没有 IDispatch 的情况下创建 VB.NET COM 可见接口(interface)?

C# SQL Geometry 错误 : Invalid operator for data type. 运算符等于等于,类型等于几何

c# - ASP.NET Core Web App 将 404 请求记录为警告

c# - ASP.NET 中的自定义项目符号列表项

vb.net 货币显示有四个零而不是两个

c# - 编辑 : NGINX reverse proxy ASP. NET Core 5.0 : localhost:5000 closes connection but www. google.com 有效