首页 新闻 会员 周边 捐助

身份验证问题

0
悬赏园豆:30 [已解决问题] 解决于 2008-09-10 23:42

我现在在做一个类似博客园一样的多用户博客系统

但是碰到这个身份验证问题

我是该手动判断呢 这种方式好像很繁琐 每个页面都需要判断用户身份

还有用户帐户还有其他很多信息

还是用forms来验证身份

这种方式怎么做呢

我查了好久 发现网上的基于forms认真的都是直接用的自带的提供程序

那如何才能用我的项目也就是博客用户表中的数据来进行验证呢

番茄爱炒蛋的主页 番茄爱炒蛋 | 初学一级 | 园豆:0
提问于:2008-09-07 05:05
< >
分享
最佳答案
0

  .net 的自带的用户系统固然能用,但限于个人认识等等,不见得实用、好用。

  你说的应该是指如果对用户进行权限管理。就我的经历来看,分两类:一类精确到页,一类精确到控件(页面区域?)。

  对于前者,我的做法是,创建 ResourcesManager 类,其负责或返回当前用户针对某页是否可访问。数据库创建 Resources 表,记录用户(建议使用用户组或角色)和已授权页的匹配关系。

  后者,创建 ControlsManager 类,而数据库端创建 Controls 表,记录用户(建议使用用户组或角色)和已授权控件的匹配关系。而在页面加载时,各控件(也可以是页的某个区域)根据授权选择显示或不显示。

  用户身份嘛,当前对话的放到 Session 中,可自动登陆的,放到 Cookie 中(含过期时间),Cookie 中保存信息的安全性、完整性就看你如何用加、解密手段控制了。验证的通道,要么是统一的用户登陆页面,要么是可返回用户信息的统一动态页面、Web服务(允许各页面通过 Ajax 的方式获取当前用户权限)或方法。

  还算比较轻量级的。

陛下 | 老鸟四级 |园豆:3938 | 2008-09-07 10:55
其他回答(2)
0

手动判断灵活一点,功能也强大一点,所以建议使用

如果只需要把权限控制到页面,可以使用forms验证,看一下web.config的配置说明里面就知道了,也可以让所有页面继承自一个基类,然后每个页面给一个惟一标识,这样可以把所有的验证过程放到基类里处理一次就行了,因为有了惟一标识,所以甚至可以把这个权限分发放到数据库里,并提供修改权限的页面,功能很是强大

如果是要把权限控制到一个页面的某一部分甚至某一个行字,那你免不了要写上一堆的if(){}else{},这个没有办法,最多不过你把这个if写到用户控件里,这样不用每个页面都写,但终归还是要写的

一般的话,把上面两个结合起来比较好用一些,哈哈

丁学 | 园豆:18730 (专家六级) | 2008-09-07 05:28
0

手动判断灵活一点,功能也强大一点,所以建议使用

如果只需要把权限控制到页面,可以使用forms验证,看一下web.config的配置说明里面就知道了,也可以让所有页面继承自一个基类,然后每个页面给一个惟一标识,这样可以把所有的验证过程放到基类里处理一次就行了,因为有了惟一标识,所以甚至可以把这个权限分发放到数据库里,并提供修改权限的页面,功能很是强大

如果是要把权限控制到一个页面的某一部分甚至某一个行字,那你免不了要写上一堆的if(){}else{},这个没有办法,最多不过你把这个if写到用户控件里,这样不用每个页面都写,但终归还是要写的

一般的话,把上面两个结合起来比较好用一些,哈哈

丁学 | 园豆:18730 (专家六级) | 2008-09-07 05:28
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册