首页 新闻 会员 周边

想问下一些大型的门户网站的首页登录是怎么做的?

0
悬赏园豆:20 [已解决问题] 解决于 2009-09-18 13:46

rt

据我所知,一些大型的门户网站的首页必然是静态的,或者用了页面缓存的(因为服务器扛不住)

但是这样的话怎么实现首页登录,和首页登录状态的转换呢?

问题补充: 这个我主要是有以下几个问题: 1怎么保证session和cookie的同步 2在cookie里面一般存那些字段 (有些站看到只要以前登录过,以后在上他的站就一直是登录状态,不知道这个是怎么做的,如果要回服务器验证必然要回传,难道第一次打开页面就回传?如果不回传不验证,那怎么保证用户是不是登录了,而且如果出现用户在其他位置也登录了,是不是以后只要登录的地方只要上就一定能够登录??) 3有时候一个大站有多个域名,他们是怎么保证一个位置登录了所有位置都登录了。
小眼睛老鼠的主页 小眼睛老鼠 | 老鸟四级 | 园豆:2731
提问于:2009-09-17 10:14
< >
分享
最佳答案
0

你应该了解一下http的基本原理,实际上这些表单提交都是通过post形式提交并由服务器处理的。

在Asp.Net中通常是以Post形式回发到本页,所以你觉得只有动态页才能执行登录操作。

其实只要将静态页的数据post到一个地址,这地址里可以动态页,甚至也可以没有任何显示,只要处理请求就可以了。

至于登录状态的显示,只需要登录后写入Cookies,再由js读取并显示就行了。

 

——————————————————————————————

补充

Cookies与Session没有必要同步,因为都是针对一个用户的,也可以说它们压根就没有不同步的时候,你要存数据在Cookies或Session都可以,具体看你是要在客户端还是服务端调用了。

“有些站看到只要以前登录过,以后在上他的站就一直是登录状态,不知道这个是怎么做的,如果要回服务器验证必然要回传,难道第一次打开页面就回传?”

这完全可以由JS从Cookies中读取并显示的,只要设置较长时间的存活时间,就可以一直使用。

这里你可以理解为并未真正登录,因为你在首页只是浏览操作,不提交数据,所以对你身份没有特别要求,提交数据的时候服务器从Cookies中读取你的用户名及密码的MD5版本,进行一下验证,就能确定你的登录是否真正有效了。(有的网站的做法是提交数据的时候必须真正登录一下)

“如果出现用户在其他位置也登录了,是不是以后只要登录的地方只要上就一定能够登录??”

大多数网站都不需要对此加以限制,所以多点登录也是没有问题的。

并且如上所说,首页显示的登录状态并非是真的,完全可以等到真正提交服务器的时候再进行单点登录互斥判断。

“有时候一个大站有多个域名,他们是怎么保证一个位置登录了所有位置都登录了”

这些网站通常有一个专门的用户信息服务器(比如微软的就是明确显示了一个身份网站),用于做各个子站的中枢,在你登陆之后用户信息服务器可以在Cookies中写入一个流水号(通常是GUID类型),并在服务器保存该ID号对应的过期时间,其它服务器在需要验证身份的时候只要把Cookies里的流水号传给用户信息服务器,就能验证你的登录是否有效、是否过期。

收获园豆:10
斯克迪亚 | 老鸟四级 |园豆:4124 | 2009-09-17 13:29
也许是描述不清楚吧 那么我想问问怎么保证cookie和session同步呢?
小眼睛老鼠 | 园豆:2731 (老鸟四级) | 2009-09-17 13:43
非常感谢你的答复:)
小眼睛老鼠 | 园豆:2731 (老鸟四级) | 2009-09-18 13:46
其他回答(2)
0

“3有时候一个大站有多个域名,他们是怎么保证一个位置登录了所有位置都登录了。”

大网站通常都有n多台服务器,所以不用session的,当然session也可以存在另外的进程或者数据库中,但是一般也没这么做的,都是用cookie。 禁用了怎么办? 禁用一下试试?相信很多大网站的功能都没法用了。

不过在运维方面也可以设置,一个用户第一次访问到哪台服务器,保持在此次连接内,后面的操作都保持还是访问这台服务器。

收获园豆:5
Cheese | 园豆:509 (小虾三级) | 2009-09-17 16:37
能够描述一下一个已经登录过网站的用户进入网站首页的流程么? 这个我没做过,想也有很多位置想不通
支持(0) 反对(0) 小眼睛老鼠 | 园豆:2731 (老鸟四级) | 2009-09-17 16:42
0

建议了解下CMS

童同 | 园豆:258 (菜鸟二级) | 2012-03-11 22:09
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册