具有多个参数的URL作为ASP.NET中的查询字符串

时间:2013-01-12 14:26:39

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

在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 symbol中识别returnURL实际参数和参数时会很复杂。请帮我解决这个问题。

提前致谢。

1 个答案:

答案 0 :(得分:11)

编写链接时应使用 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"])