前两节描述了我对身份验证信息的保存的认识,没有看的哥们请依次看过关于ASP.NET下身份信息的保存(二),关于ASP.NET下身份信息的保存(一) .
今天我想说一下Server.Transfer,在上两节里,我们是靠Server.Transfer方法将保存的用户信息传递到下一页的.但是在实际的应用中我发现应用前两篇文章的想法的弊端.
Server.Transfer();方法在应用中只能在两个页面之间传递值,但是当加入第三个页面的时候却无法将值顺利的保存并传递。
譬如:有页面A.aspx(为login页面),B.aspx(信息汇总页面),C.aspx(单个信息页面)在A页面中我们执行身份验证并且保存在this.Login_User属性里然后Server.Transfer(B.aspx),则值顺利传递到B页面,然后在B页面中也Server.Transfer(C.aspx);理论上讲值应该可以顺利传递到C页面,但是我们在C页面里通过
B ls=(B) Context.Handler;//读取页面值
userinfo=ls.Login_User;//读取用户信息值
方法却无法填充userinfo变量,为什么?
哥们儿,搞了一个上午总算明白了,Context是无法在第三个页面里继续保存里面的信息的,大家不能象用session那样去使用Context,所以我们在B页面里应该再次执行一遍this.Login_User=userinfo;这样将值再次添加到Context,然后再Server.Transfer();就可以了。
以上是小弟的一点拙见,愿意拿出来和大家探讨。如有高人有更为深刻的认识
请发邮件联系。