url传递的参数值中包含&时被截断问题

问题起源:

我使用identityserver做登录中心,打开客户端会先跳转到登陆中心,并带上返回客户端的url,登录成功会自动跳转回客户端。现在我在登录页面加了注册按钮,从登录跳转到注册要携带返回客户端的url,以便注册成功后再返回登录还能携带返回客户端的url返回客户端的url,登录还能跳转到客户端。
但是发现在登录跳转到注册时传的url是正常的,跳转到注册时获取的rul中带有&字符后面的都被删除了。。。

解决办法:传递url时先编码再传递可以解决。

引入 using System.Web;
HttpUtility.UrlEncode(text); //utf-8 编码
HttpUtility.UrlDecode(text); //utf-8 解码
HttpUtility.UrlEncode(text, System.Text.Encoding.GetEncoding(936)); //gb2312编码
HttpUtility.UrlDecode(text, System.Text.Encoding.GetEncoding(936)); //gb2312解码

posted @ 2021-12-05 12:59  weichangk  阅读(364)  评论(0编辑  收藏  举报