我在做完Rbac(基于角色的访问控制)后, 因为每次都是在本机做的测试, 所以一直没有发现问题(因为运行都是http:localhost/...index.aspx),后来我觉得这个习惯很不好,后来我以后都用IP做为网站的根路径,在vs2005中的工具栏中点 "网站" --> "启动选项" --> "服务器(单选 使用自定义服务器)" ,在 URL 中输入
http://10.12.1.55/dssweb/ (其中的IP是我本机的,dssweb是我网站默认文件夹名) ,这时候以后每次启动程序都是以IP为默认网站,再不是LocalHost了。
为了保存登陆用户信息,我采用了Cookies,并设计了一个类,其中保存的信息有用户名,地区列表,角色列表。
一切并不那么顺利,在每次登陆成功进入index.aspx后,发现再进入别的页就发生错误,提示角色列表未有对象实例,我跟程序,发现第二个Cookies值乱码,而第三个Cookies值为空,这到底怎么回事,我跟程序,发现添加三个Cookies值的时候是正确的, name : sa , region : "南京市" , rolelist : "1,2,3,4,5,6"。
可提取的时候为什么错误了呢?
原来IE保存Cookies时候有特定的编码方式,一开始我还以为它把每个Cookies按对象的方式保存,原来它把Cookies值按顺序保存在头里,所以三个Cookis保存在一起,因为有中文,编码发生误认,导致错误。
弄了我2个小时才查出来,晕,就这点小时,后来我把类重新改了,加了编码和解码,一切OK了,贡献给大家,虽然很简单,希望大家碰到类似问题,少走弯路。