【问题标题】:URL with multiple parameters as a query string in ASP.NET具有多个参数的 URL 作为 ASP.NET 中的查询字符串
【发布时间】:2013-01-12 14:26:39
【问题描述】:

在 ASP.NET 中,我构建了一个字符串 redirectURL 以使用多个查询字符串参数重定向到 ADFS 表单。一个这样的复杂参数是具有多个参数的returnURL

我的问题是只有returnURL 的第一个参数在实际返回时可用。

E.g. redirectURL = <br> 
https://aaa.aaa/adfs/Form.aspx <br>
?DomainName=domain <br>
&AccountName=account <br>
&returnURL=https://bbb.bbb/MyPage.aspx?param1=111&param2=222

我知道在识别&amp;amp symbol 的实际参数和returnURL 中的参数时会很复杂。请帮我解决这个问题。

提前致谢。

【问题讨论】:

  • 为什么要将带有参数的页面传递给带有参数的页面?你想实现什么样的功能?
  • 要构建redirectURL,有一个特定的方法,它只构建主要的三个参数(DomainName、AccountName、returnURL)。然后在 Form.aspx 的函数之后,它再次重定向到 returnURL。我想要那个返回 url 中有两个参数。听起来可能很复杂,但我希望这不是不可能的......请帮助

标签: c# asp.net escaping query-string adfs


【解决方案1】:

您应该在编写链接时使用HttpUtility.UrlEncode,在解析链接时应该使用HttpUtility.UrlDecode

对于您的情况,它应该类似于:

"https://aaa.aaa/adfs/Form.aspx?DomainName=domain&AccountName=account&returnURL=" + 
    HttpUtility.UrlEncode("https://bbb.bbb/MyPage.aspx?param1=111&param2=222")

然后在目标处使用:

HttpUtility.UrlDecode(Request.QueryString["returnURL"])

【讨论】:

  • 非常感谢。抱歉,我有时需要测试这个实现。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-05
  • 1970-01-01
  • 2016-09-25
  • 1970-01-01
相关资源
最近更新 更多