基于ASPNET的网上论坛系统的设计与实现.docx

上传人:b****1 文档编号:14296989 上传时间:2023-06-22 格式:DOCX 页数:12 大小:24.05KB
下载 相关 举报
基于ASPNET的网上论坛系统的设计与实现.docx_第1页
第1页 / 共12页
基于ASPNET的网上论坛系统的设计与实现.docx_第2页
第2页 / 共12页
基于ASPNET的网上论坛系统的设计与实现.docx_第3页
第3页 / 共12页
基于ASPNET的网上论坛系统的设计与实现.docx_第4页
第4页 / 共12页
基于ASPNET的网上论坛系统的设计与实现.docx_第5页
第5页 / 共12页
基于ASPNET的网上论坛系统的设计与实现.docx_第6页
第6页 / 共12页
基于ASPNET的网上论坛系统的设计与实现.docx_第7页
第7页 / 共12页
基于ASPNET的网上论坛系统的设计与实现.docx_第8页
第8页 / 共12页
基于ASPNET的网上论坛系统的设计与实现.docx_第9页
第9页 / 共12页
基于ASPNET的网上论坛系统的设计与实现.docx_第10页
第10页 / 共12页
基于ASPNET的网上论坛系统的设计与实现.docx_第11页
第11页 / 共12页
基于ASPNET的网上论坛系统的设计与实现.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于ASPNET的网上论坛系统的设计与实现.docx

《基于ASPNET的网上论坛系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《基于ASPNET的网上论坛系统的设计与实现.docx(12页珍藏版)》请在冰点文库上搜索。

基于ASPNET的网上论坛系统的设计与实现.docx

基于ASPNET的网上论坛系统的设计与实现

网络通讯与安全

本栏目责任编辑:

冯蕾

1引言

随着Internet技术的飞速发展,论坛随之产生,已经成为网络上不可缺少的交流方式之一,深受网民的喜爱。

“网上论坛”是In-

ternet上的一种信息服务系统,

它提供一块公共电子白板,每个用户都可以在上面书写,可发布信息或提出看法,可以让来自世界各个角落的用户针对某个主题进行讨论,如此便可以达到集思广益的效果。

ASP.NET是微软公司的ASP和.NETFramework这两项核心技术的结合,功能强大、技术非常灵活,适合于编写动态Web页面。

因此,本文选择ASP.NET技术来构建论坛系统,采用SQLServer2000数据库管理系统作为数据库服务器,客户端通过IE或其它WWW浏览器来使用系统所提供的所有功能。

2系统设计

2.1系统设计目标

(1三层结构设计:

本系统的程序逻辑结构分为用户界面层、业务逻辑处理层和数据存储层。

三层在实际的物理结构上也是独立的,用户界面与业务逻辑分离,系统的安全性、可维护性、重用性和扩展性都大大提高。

(2面向对象设计:

系统中将文章、用户信息等都封装成相应的类,从而再次提高了对数据库操作的安全性和程序的可扩展性。

(3人性化设计:

系统界面设计充分考虑到用户上网习惯,从简单实用出发,易于操作。

2.2系统功能模块设计

将系统功能分为前台和后台两大类,设有注册用户和管理员两种用户权限,分析该网上论坛系统主要包括的功能如图1所示。

图1系统功能模块图

之所以把属于管理员权限的管理帖子模块归于前台,是因为考虑到对于一个论坛系统而言,帖子是最主要的。

为了方便管理,管理员需要一边浏览查看一边进行管理,管理时需要了解帖子的详细内容,以及相关回帖信息,因此将帖子的管理界面融合在前台的浏览界面中。

其他的模块,则是完全根据用户权限进行划分的。

图2系统E-R图

2.3数据库设计

数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接影响应用系统的效率及实现的效果,合理的数据库结构设计可以提高数据存储的效率,保证数据的完整性和一致性。

(1数据库概念结构设计。

考虑到论坛中各个对象的相互关系,帖子属于版块,回复帖从属于主题帖,帖子的作者属于用户,因此版块、主题帖、回复帖是一层层的从属依赖关系,帖子的作者必定是论坛的用户,帖子不能脱离版块、用户而单独存在。

系统的E-R图主要设计如图2所示。

(2数据库逻辑结构设计。

确定了论坛有哪些数据表及其关

收稿日期:

2006-09-01作者简介:

唐伟(1973-

男,江苏阜宁人,讲师,硕士,主要研究方向为软件工程与数据库技术。

基于ASP.NET的网上论坛系统的设计与实现

唐伟

(南京审计学院信息科学学院,江苏南京210029

摘要:

随着Internet技术的发展,论坛已成为网络上不可缺少的交流方式之一。

在介绍了系统的设计目标、功能和数据库设计方案之

后,结合ASP.NET的开发环境阐述了系统的实现方法。

利用ASP.NET技术开发的网上论坛系统,

实现了网上论坛的动态管理,使得对信息的管理更加及时、高效,方便用户及时上网浏览有用信息,发表自己对相关问题的看法。

关键词:

网上论坛;ASP.NET;SQLSERVER2000;数据库;ADO.NET;连接池中图分类号:

TP311文献标识码:

A文章编号:

1009-3044(200632-0070-02

DesignandImplementationofBBSSystemBasedonASP.NET

TANGWei

(InformationScienceSchool,NanjingAuditUniversity,Nanjing210029,China

Abstract:

WiththedevelopmentofInternettechnology,theBBShasbecomeanecessarycommunicatingmodeinthenetwork.Systemdesignobject,systemfunctionsanddatabasedesignschemesareintroducedfirstly,andthenastatementoftherealizingmethodswiththedevel-opingenvironmentofASP.NETismaked.TheBBSsystemdevelopedbyASP.NETrealizesthedynamicmanagement,andmakestheinfor-mation'smanagementmoretimelyandefficiently,sotheuserscanlookthroughthepagesconvenientlyandaddressideasaccordingtorelatedquestions.

Keywords:

BBS;ASP.NET;SQLSERVER2000;Database;ADO.NET;

Connection

Pool

网络通讯与安全本栏目责任编辑:

冯蕾

系,就可以开始设计每个表的具体结构。

3系统的实现

3.1开发环境

(1操作系统:

Windows2000Server及以上服务器版本;

(2数据库管理系统:

SQLServer2000;

(3Web服务器:

InternetInformationServices(IIS;

(4编程工具:

编程软件为VisualS2003,使用ASP.NET作为网络编程开发框架,编程语言选用C#。

 

ADO.NET提供两个核心组件:

DataSet和DataProvider,通过ADO.NET可以从数据操作中分解出数据访问。

ADO.NET两种组件问的关系如图3所示。

图3ADO.NET结构示意图

3.3数据库连接

第一步,创建一个C#“ASP.NETWeb应用程序”项目,取名为“sampleForum”。

第二步,添加Web自定义用户控件,具体步骤如下:

(1解决方案资源管理器中建立目录SetData;

(2在目录中单击鼠标右键,从弹出的快捷菜单中选择[添加]命令;

(3选择[添加Web用户控件]命令;

(4输入控件文件名connect_strings.ascx,用鼠标右键选择[查看代码]命令进行编码,主要代码如下:

{publicstringSqlConnectionString

{get{return"Server=BBS;DataBase=DBBS;Pwd=123;Uid=tw;MaxPoolSize=50;MinPoolSize=5";}}}

在用户自定义控件当中定义了SqlConnectionString属性,对应的是.NET数据提供程序下的连接字符串。

连接字符串定义了数据库服务器的名称是BBS,数据库的名称是DBBS,用户名是tw,用户密码是123。

由于系统在多个页面都需要访问数据库,因此将连接字符串定义在用户自定义控件中,实现了软件代码的复用。

第三步,实现数据库的连接,在需要访问数据库的页面中进行编码。

代码如下:

publicstaticstringSQLCONNSTRING

{get{connect_stringsoConn=newconnect_strings(;

returnoConn.SqlConnectionString;}}

SqlConnectionoConn=newSqlConnection(SQLCONNSTRING;

oConn.Open(

以上代码的作用是获取连接字符串的值,将用户自定义控件中的连接字符串赋给字符型变量SQLCONNSTRING,然后新建连接oConn,通过oConn的open方法连接到数据库。

3.4程序性能的优化

作为一个ASP.NET开发者,网站的性能是至关重要的,没有良好的性能就无法满足数以百万计用户访问的庞大要求。

在本系统设计中主要使用了如下的代码优化方法。

在系统中,将重复使用的属性和方法定义成类或组件,如上述的connect_strings用户自定义控件就是一个组件。

在.NET平台的组件层中,组件是以Assemblies的形式创建的,它是一段可调用的程序集;使用组件时,需要做的仅仅是添加对那个程序集的引用。

类是C#语言实现面向对象程序设计的基础,它是封装的基本单元,把对象、属性、和方法这些类成员封装在一起构成一个有机整体。

需要时我们可以直接调用“类”,本系统定义了一个用户类“LoginC”,存放在Code目录下面的Forum_BusObj.cs文件中,用于验证用户登录等操作,下面列举了验证登陆的函数代码。

publicclassLoginC

{//论坛验证登陆

publicboolcheckLogin(stringLoginName,stringPWD,stringstr-Conn

{stringsql="selectcount(*asfintLoginCountfromT_OperatorwherefchrLoginName='"+LoginName+"'andfchrPassWord='"+PWD+"'";//定义查询的字符串

SqlConnectionoConn=newSqlConnection(strConn;//新建一个连接

oConn.Open(;//连接数据库

SqlCommandoCommand=newSqlCommand(sql,oConn;//新建一个命令对象

SqlDataReaderoReader=oCommand.ExecuteReader(;//创建DataReader对象,执行sql命令

while(oReader.Read(//读取查询的结果

{if(oReader.GetInt32(0==0

{returnfalse;//验证失败}}

oReader.Close(;//关闭DataReader对象

oConn.Close(;//关闭数据库连接

returntrue;//验证成功}}

代码中定义了一个LoginC类,在其中添加一个checkLogin函数作为用户登录的验证方法,注册用户和管理员登录论坛都可以通过调用类的checkLogin方法来实现。

该方法的编程思想是:

连接到数据库后,新建一个DataReader对象oReader,通过该对象执行查询命令,具体是在T_Operator中查询符合所输用户名和密码的记录,然后用oReader对象读取查询的结果,如果读取的内容为空,则当前为非法用户,反之为合法用户。

数据库连接池是目前改善程序数据访问性能的重要手段,它的基本原理是预先建立若干数据库连接对象放入特定内存结构(称为池中,每次收到用户请求时便从池中取出一个连接对象交给用户使用,使用结束后并不真的关闭数据库连接,而是将它重新返回池中,如此就可以循环使用这些连接对象,避免反复建立和关闭连接的系统开销。

由于数据库连接是极其重要和有限的资源,而反复地建立和释放连接造成了大量的开销和性能降低,产生性能瓶颈,采用数据库连接池技术可以有效地消除这个瓶颈,极大地改善数据库访问性能。

return"Server=BBS;DataBase=DBBS;Pwd=123;Uid=tw;MaxPoolSize=50;MinPoolSize=5";

设定连接池的初始连接数为5,最大连接数为50。

另外需要格外注意的是,使用连接池时,ADO.NET要求每次连接的连接串必须完全相同,否则将导致当前的连接池无效,而

(下转第171

开发研究与设计技朮本栏目责任编辑:

谢媛媛

(上接第71页

建立新的连接池,从而造成不必要的开销。

使用Page.IsPostback可以避免页面往返过程中没有必要的工作。

开发者往往将初始化的代码放入到page_load函数中,这样造成的结果是每次往返过程都将调用初始化代码。

Page.IsPostback的值为false时,表示是初次运行页面,需要初始化,否则无需进行初始化代码。

使用Page.IsPostback属性的系统代码结构如下:

privatevoidPage_Load(objectsender,System.EventArgse

{//在此处放置用户代码以初始化页面

if(!

Page.IsPostback{……}}

3.5论坛系统的运行

启动论坛系统应用程序,首先出现的是系统主页,如图4所示。

图4论坛系统主页

(1点击“注册”,便可进入到“新用户注册”页面,用于新用户注册为论坛合法用户。

(2点击“登录”,便可进入到“注册用户登录”页面,输入用户名、密码,单击“登录”按钮后,系统进行密码认证。

认证通过后,主页的“当前状态”显示为“已登录”,该用户可以执行注册用户权限范围内的所有操作。

(3在“已登录”的状态下,用户可浏览版块类别,选择相应的版块,点击“进入”,则打开“帖子列表”页面,此时用户即可查看该版块中的帖子、发表新的帖子、查看相应的帖子回复并发表新的回复。

(4点击“管理”,便可进入到“管理员用户登录”页面,输入用户名、密码,单击“登录”按钮后,系统进行密码认证。

认证通过后,进入“管理员”初始页,选择要进行的操作。

4结束语

该论坛系统已经开发完成,它具有朴素和谐的良好界面,操作简单,在多个客户端接入的情况下,都能迅速地完成操作任务;此外,由于ASP.NET应用程序已经过编译,从而系统执行速度快,并且整个系统非常稳定。

从中可以看出,ASP.NET技术将浏览器、网页、Web服务器、数据库、数据库服务器有机地连接起来,用它开发的在线论坛,可非常方便地实现Internet网上信息发布、信息交流和信息共享,而且很容易适应系统的不断变换和发展。

参考文献:

[1]唐伟,李希,徐大华.心脑血管疾病的规范化诊治系统的设计[J].微计算机信息,2005,21(12-3:

20-22.

 

[5]王华杰,李律松,孙一波,等.精通C#数据库开发[M].北京:

清华大学出版,2004.

起发送给客户。

客户端利用RSA算法产生两个素数p和q,计算n

以及自己的双密钥e

i和d

i

把(n,d

i

与随机数Rk通过一定的运算f

结合后产生h

i

=f(n,di,Rk,把用户名User_namei与hi一起提交给系

统。

e

i

则由用户自己保管,不能泄漏。

(3系统收到(User_namei,hi后,利用与f相反的运算f-1分

解h

i得到(n,d

i

保存用户的User_namei和(n,di信息。

第三阶段:

用户登录并与服务器进行双向认证。

(1用户端产生随机数RU,发出登录请求,发送(RU,Us-

er_namei到系统;

(2系统查询密码表,若无User_namei,则拒绝请求,若有,则利用该用户的(n,d

i

对随机数RU加密产生密文Ci=E(RU=RUdimodn。

系统产生随机数RS,并将(Ci,RS传送给该用户。

(3用户端收到(Ci,RS后,进行解密,还原明文为m=D(Ci=Cieimodn,将m与RU对比,若相同,则客户端通过对服务器的认证。

若不同,则说明是假冒的服务器。

(4用户用自己的(n,ei对随机数RS加密产生密文Ci'=E(RS=RSeimodn。

如果是假冒的用户,则不拥有正确的(n,ei,加密后的

密文不能通过服务器端的认证。

将C

i

'传送给服务器端。

(5服务器利用该用户的(n,di对Ci'解密,还原明文为m'=D(Ci'=Ci'dimodn,将m'与RS对比,若相同,则系统通过对该用户的认证。

若不同,则说明是假冒的用户。

4系统安全性分析

一些攻击者通过网上窃听的手段获取用户传输的信息并进行分析,以得到口令。

本方案中,在网上传输的是加密随机数后产生的密文,而不是口令本身。

如果密文被窃取到,根据大整数因子难分解性,根据密文难以得知密钥。

对于重放攻击来说,在认证过程中,网上传输的密文都是对随机数进行加密。

客户每次登录,客户端和服务器端都会产生新的随机数,所以即使攻击者获取了某次登录时的密文,进行重放攻击,服务器端解密后比较当前的随机数,就会发现它与当前随机数不同,进而拒绝其登录。

目前大多认证系统都是只对客户进行认证,这就使得一些攻击者通过假冒服务器来获取用户信息。

对于本系统,当攻击者假冒服务器与用户对话时,需要对用户端产生的随机数RU进行加密,假冒的服务器对随机数R

U

加密产生的密文C

i

=E(RU=RUdimodn必然是错误的,发回用户端以后,用户解密发现产生的明文m与RU不同,从而发现假冒的服务器。

从上述分析可以看出,本系统密文难以被破解,并且能够很好的防止假冒攻击和重放攻击,具有较高的安全性。

5结束语

本文提出了一种双向动态口令认证方案,介绍了该系统的设计原理和实现步骤。

通过安全性分析,可以看出系统具有较高安全性。

整个方案方便有效,易于实现。

参考文献:

[1]胡志远.口令破解与加密技术[M].北京:

机械工业出版社,2003.

[2]RivestR,ShamirA,AdlemanL.Amethodforobtainingdigi-talsignaturesandpublic-keycryptosystems[J].CommunitionsoftheACM,1976,21(2:

120-126.

[3]WilliamStallings.CryptographyandNetworkSecurityPrinci-plesandPractice(SecondEdition[M].Beijing:

PublishingHouseofElectronics

Industry.

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2