我在asp.net程序中在多个页面中使用cookie["token"]和地址栏参数"url?token=…" 同时传递一个字符串,为什么地址栏中的参数会变成重复的?
比如说cookie["token"] = "china" 地址栏中 : url?token=china 结果传到第三个页面的时候地址栏中就变成了 : url?token=china,china 第四个页面就变成4个china了。
开始以为是cookie没有保存到客户端,而是通过url来传递的,但是设置过期时间后,cookie已经保存到了客户端,但是仍然会出现上面的问题。
初步分析是.net中cookie是用隐藏的地址栏参数进行传递的,不知道对不对?
请问有没有办法解决cookie和参数同时传递的问题(这里的地址栏参数需要与cookie的名字相同,所以不能改变名字)
比如说cookie["token"] = "china" 地址栏中 : url?token=china 结果传到第三个页面的时候地址栏中就变成了 : url?token=china,china 第四个页面就变成4个china了。
开始以为是cookie没有保存到客户端,而是通过url来传递的,但是设置过期时间后,cookie已经保存到了客户端,但是仍然会出现上面的问题。
初步分析是.net中cookie是用隐藏的地址栏参数进行传递的,不知道对不对?
请问有没有办法解决cookie和参数同时传递的问题(这里的地址栏参数需要与cookie的名字相同,所以不能改变名字)
你查看一下,在哪儿进行定位url,看看在传之前是否有问题
另外对于楼上说的,我也在程序里面跟过,url传递的参数没有问题,而且还发现cookie保存到客户端后,再重新登陆这个页面时,Page.Response.Params["token"]中就已经有上次访问时保存的cookie["token"]了,说明cookie是用参数来传递的
Request.Params包含 从 Form 、Cookie、 QueryString和ServerVariables来的数据
你用Request.Params["token"]当然能获得Cookie的数据了,
获取Url中QueryString的数据请采用 Request.QueryString["token"] 这样就不会和Form、Cookie、ServerVariables中的数据存在“冲突”
改成 Request.QueryString["token"] 后,问题解决了,谢谢(武眉博<活靶子.NET>)