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

问个最常用的基础的问题,登录的过程
如题,在做登录功能时,遇到如下问题,帮忙看看哪里不妥,如何做得更好,谢谢

因为要求使用cookie来保存用户信息,所以,我在做登录功能的时候,是这样实现的。

1.先判断当前浏览器上用户是登录状态,即判断cookie["user"]是否为null

2.然后再判断用户名是否为空串cookie["user"]["name"]=="",如果这种情况,视为没有用户处在登录状态,但是,这里会经常出现问题,就是说出现异常,空指针,这个挺烦的。(加了这方面的判断主要是由于在实际应用中发现,即使cookie["user"]不为空,cookie["user"]["name"]可能为空,具体是什么原因明白,应该是cookie的问题)

3.如果一切正常的话,视为登录成功,把用户的信息保存到cookie中。

(有关密码,用户名等和数据库相关的这里不想讨论。)

我上面的做法,在实际应用中特别不稳定,自己想想,是否关于cookie的判断是多余的,如果不判断的话,可能登录问题就变得非常简单了,但是,如果这个用户在线的话,如何避免重复登录哪,尤其是,那些不习惯退出直接关掉浏览器,然后,又打开浏览器访问页面的人。

有没有比较完善的方法。

------解决方案--------------------
我曾经也遇到过类似的问题,但是,找了很多资料和在网上搜索,都没有找到合适的解决方法。后来看了一本关于asp.net揭秘的书,作者只是在使用cookie的时候,进行了一次cookie判断,对cookie中的子集和没有判断。

个人认为还是判断一下子集和,这样可以避免出现异常。