让人上火的Response.Redirect

今天写一个小的BS程序,需要用到登录,因为不能使用ASP.net的内置登录方式(以前给企业写的程序全是这种方式),只好自己写代码来进行登录,想了想也很简单,使用一个Session来记录登录情况就可以了。

具体操作方式是在登录代码后进行Session["User"] = user ; 赋值操作,然后再Response.Redirect("default.aspx");而在default.aspx里对Session["User"] 判断一下就可以了。

但是结果却让我很是郁闷,不管我怎么登录,在default.aspx里Session["User"] 始终不存在!

我还傻傻的把框架卸载了重装,还是一样。

哎,搞了这么多年编程还是头一次出现这么让人困惑的地方,几乎无从下手了。

发了一阵呆以后,突然想试试Session是不是真的不好用了,我建了一个简单的项目,测试了一下,session很正常,唯一的区别是在这里我没有使用Response.Redirect方法,看来问题在这里了。

又查了一下资料发现,Redirect方法是通过服务器把地址发送给客户端,客户端再请求服务器这个地址来得到的,这个过程里,实际上是两次请求过程。又找了一个Server.Transfer方法,它直接在服务器端跳转,不用再让客户端请求,对于客户端来说,还是相当于只进行了一次请求。

把Response.Redirect换成Server.Transfer方法后,果然一切OK了,呵呵

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值