首页 新闻 会员 周边

怎样整合成员资格提供程序的数据库?

0
悬赏园豆:50 [已解决问题] 解决于 2008-12-12 13:38

由于毕业设计需要做一个博客+论坛的简单系统,打算采用ASP.NET2.0自带的的成员资格&角色&…等数据库,现在计划博客系统用一个数据库,论坛用一个,可是这个成员资格的数据库没处放,放博客与论坛之中一个另一个就不行了,单独放更不合适,求教这种情况怎么处理?(前提不想把这三个都放在一个数据库中)

hystar的主页 hystar | 初学一级 | 园豆:38
提问于:2008-12-11 16:04
< >
分享
最佳答案
0

引用:(前提不想把这三个都放在一个数据库中)

没看明白您说的三个指的是哪三个,怎么看您也只需要有两个数据库:博客和论坛。当然如果您想把用户信息单独做一个数据库,那就是三个了。

您可以使用ASP.Net2.0自带的用户认证体系,我是没有使用过,感觉配置的项目都比较多,而且还不容易成功,不过一旦建立起来相信会比较稳定,而且安全性也比较高,性能可能也会很优秀。而且后续开发上您只需要使用而不需要过多开发用户登录信息的认证了。

我不是不推荐您使用,关键是我个人认为ASP.Net2.0自带的用户认证体系,东西比较多,考虑的非常全面,学习起来可能需要花些时间和精力,如果您有这方面的时间和精力的话,不妨到微软的MSDN上看看此方面的系列性文档,比这里的任何人给的帮助都全面和透彻。

我要告诉您的是如果您不使用ASP.Net2.0自带的用户认证体系,一样能达到您希望的效果(微软只是考虑的比我们更多、更全面、更细致,并且替我们做好了相关的封装,提供了使用的接口而已),下面是我给您的一些思路(关键不在数据库有几个,而是程序开发上):

一:三个数据库(用户信息数据库、博客数据库、论坛数据库)

为了方便建议三个数据库使用同一个Sql数据库登录名进行访问(如果您用的Sql Server数据库,那么最好不要使用sa,另建一个和sa具有相同权限的登录名,且把sa的密码设置复杂些,sa是Sql Server安全隐患之一。不过您的既然是毕业设计,而不是大众使用的程序,那就无所谓了,但以后工作中要注意不要使用sa),有关更多Sql Server数据库安全性,您同样可以在微软的MSDN上找到有关的系列文档学习。

二:必须独立开发一个用户登录认证模块(用Web的用户控件也好,用Dll封装应用也好,最好把用户登录认证独立出来)

1、在开发用户登录时,最好不要将登录成功的用户信息存入Session(Session容易丢失,而且页面跳转时也会丢失),而是放入Cookie中(丢失的可能性就比较小了,博客园就是用的Cookie,多稳定呀),但绝对不能存储用户的登录密码(无论明文密码,还是加密密码,都不要存入Cookie中),可以存储用户名和当前登录IP等等其他您觉得不影响安全性,同时又能唯一确认一个用户的数据(所有在Cookie中的数据为了安全性,最好不要存储明文,而用MD5或SHA1哈希后再存入Cookie)。

2、登录时读取“用户信息数据库”中有关用户信息,包括角色和权限。用户登录成功后将上述中可存入Cookie的用户信息存入到Cookie中。

3、在博客和论坛系统中调用用户控件或引用Dll文件,在页面打开的Page_Load事件中首先判断Cookie是否存在,还要判断是否是“用户信息数据库”中的数据,不存在Cookie或者不存在用户数据都跳转到登录页面,并将用户现在的Url传递给登录页面,当登录成功后再跳转到用户打开的页面(即传递过来的Url页面)就可以了。

其实您的问题并不是数据库是如何如何设计的,关键还是程序是如何开发的!

以上就是我给您的方案,不知道您是否明白了?

刚刚 | 老鸟四级 |园豆:3151 | 2008-12-11 21:50
其他回答(3)
0

还是不要用自带的好,自己设计即能学到东西又可提高程序的各方面性能.园子里有很多关于角色设计方面的文章你搜搜吧.

Astar | 园豆:40805 (高人七级) | 2008-12-11 16:09
0

他说的因该是membership 算我愚钝 我初学的时候页看这个

看了好久没没看懂

 

不过建议你自己去做一个

membership这个东西太庞大

我觉得不适合你

小眼睛老鼠 | 园豆:2731 (老鸟四级) | 2008-12-11 16:26
0

单独放为什么不合适呢?username具有唯一性,其它两个库的数据中使用username标识就行了(不做外键约束),我觉得单独放出来比较好!

GUO Xingwang | 园豆:3885 (老鸟四级) | 2008-12-11 17:24
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册