日期:2014-05-18  浏览次数:20566 次

FormsAuthentication.GetRedirectUrl 为什么取不到准确的值?
login.aspx.cs代码:
string   url   =   FormsAuthentication.GetRedirectUrl(textboxName.Text.Trim(),   true);
  //Response.Write(url);
                        Response.Redirect(url);

另外一个页面的按钮单击代码是:
Response.Redirect(FormsAuthentication.LoginUrl+ "?ReturnUrl= "+HttpContext.Current.Request.Url.PathAndQuery.ToString());

当跳转到login.aspx页面的时候url如下:
http://localhost/yinuof/login.aspx?ReturnUrl=/yinuof/topiccontent.aspx?id=124&class=6
很明显class已经传过来了
但是无论是response.write还是redirect
都是跳转到.......id=124
后面的&class=..
死人都不见了

天啊,真不知道是什么原因,不知道要怎么样解决
请大侠帮忙吧
最后三十分
在线等,立即结帐
谢谢

------解决方案--------------------
包含特殊字符,需要编码转义

Response.Redirect(FormsAuthentication.LoginUrl+ "?ReturnUrl= "+HttpContext.Current.Request.Url.PathAndQuery.ToString());

》》》》

Response.Redirect(FormsAuthentication.LoginUrl +
"?ReturnUrl= " +
HttpContext.Current.Server.UrlEncode(HttpContext.Current.Request.Url.PathAndQuery.ToString()));