小网站做了很多了,现在要做一个大网站,经验不够,特来请教:比如一个会员系统,访问量较大,就像CSDN论坛一样,同时用户分级别,比如普通用户、小版主、大版主等,他们都通过同一个登陆接口进来,比如UserLogin.aspx,那么我就在UserLogin.aspx上做一个Form验证,不管你是什么级别,只要你的名字和密码与数据库中相匹配,就给你一个基于Cookie的“通行证”,让你进。用户登录后就得用Session记录其它信息,比如等级、姓名等,以供用户在跳转页面时保持。我记得Asp.net好像可把SessionID、Session值等存放在Sql Server数据库一个高速缓存表中,不知是不是有这回事?像CSDN这样规模的论坛Session通常都用什么特殊技术存储的?(经常看见论坛里有讨论Session丢失的帖,怕怕,想找一种安全同时高效率的方法)其实也就两个小问题,归纳为两点:
一、以前做小网站时Form验证用得多,像如上较大的网站是不是还可选用Form验证二、也就是想了解一下访问量很大的站点通常用什么实现Session功能?

解决方案 »

  1.   

    关注ing !!你要做多大的网站啊?你说的这种可以做的!!
      

  2.   

    他们都通过同一个登陆接口进来,比如UserLogin.aspx,那么我就在UserLogin.aspx上做一个Form验证,不管你是什么级别,只要你的名字和密码与数据库中相匹配,就给你一个基于Cookie的“通行证”,让你进。
    -------------------------------------------------------------------------
    其实任何页面都要检查用户的权限是否充足,以及根据用户的角色的变化动态显示页面上的不同内容、功能。因此,最关键的是细致的权限判断,而不是能否让用户进入第一道门的简单问题。做不做“通行证”看上去似乎不重要,关键是通行证的内容要灵活,要有各种操作业务的各种操作参数,而不是仅仅是个“是/否”这么简单的标记。自己设计模块是比较好的选择。
    也就是想了解一下访问量很大的站点通常用什么实现Session功能?
    ------------------------------------------------------------
    基本上不用Session。Session中只保存很有数的几个变量。内存是很容易被滥用的。SessionID做为主键,其他参数跟据情况保存任意存储介质中,至少不会用内存来保存有可能长时间(例如30秒钟)之内不会被频繁访问到的数据。
      

  3.   

    对于asp.net来说,如果用户数超过10个,或者session保存经不起丢失的信息(丢失了不能自动从数据库中恢复),就应该使用状态服务器等机制。