《社区网站后台管理系统大学论文.doc》由会员分享,可在线阅读,更多相关《社区网站后台管理系统大学论文.doc(36页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、xxxx市xxxx区“xxxx”社区网站(后台管理系统) 毕业设计说明书目 录内容摘要1一、引言2(一)开发背景2(二)选题内容21课题的总体介绍22指导思想及技术路线23应解决的主要问题2二、系统设计相关介绍2(一)ASP.NET技术介绍2(二)ASP.NET图形编程技术介绍3三、系统需求分析7(一)系统功能需求71网站常规管理模块72新闻中心管理模块73注册用户管理模块74四季论坛管理模块7(二)开发及运行环境71软件环境72硬件环境8四、系统的概要设计8(一)系统的框架图设计8(二)系统的模块设计81登录页面的设计82后台页面的界面设计9五、系统的详细设计10(一)后台管理系统流程图10
2、(二)后台管理系统功能结构图10(三)数据表结构101系统数据表社区公告表102系统数据表社区新闻表113系统数据表活动表114系统数据表会员表115系统数据表评论表126系统数据表帖子表127系统数据表回复表13(四)系统实现131管理员登录132密码修改163公告管理184公告添加模块225帖子管理256在线客服29六、总结32致谢34参考文献34毕业设计说明书xxxxxxxx区“xxxx”社区网站(后台管理系统)内容摘要xxxx市xxxx区“xxxx”社区网站后台管理系统本着为社区服务人员提供一个实现对社区的信息化管理和信息的快速传递的平台,从而节省大量的人力和物力,而且极大的丰富和方便
3、了小区居民的日常生活。本网站主要实现的功能是:实现小区信息的动态发布,小区意见栏的动态管理,论坛的管理等功能。系统的需求分析是在系统开发的总任务的基础上完成的,并从实际应用的角度考虑,能够极大方便的顺利完成日常的小区的管理工作。本网站选用的主要开发软件技术是ASP.NET,数据库的创建使用SQL Server2000,以及iframe框架进行布局和三层架构实现数据的增加、删除、修改等功能操作。本文主要介绍了xxxx市xxxx区“xxxx”社区网站后台管理系统的开发初衷和背景,系统的开发工具,结构化开发的具体步骤,其中包括框架图和一些必要的图形说明。关键词:ASP.NET;iframe框架;三层
4、架构一、引言(一)开发背景在计算机网络飞速发展的今天,互联网已成为人们快速获取、发布和传递信息的重要渠道,它在整个社会的政治、经济、生活等各个方面发挥着重要的作用。而今,仅仅依靠原始的手工管理和人们口头的信息传递,已经无法有效的面对人们日常生活对信息的大量需求,并做出相应的判断和处理,社区管理人员的决策只能依据报表数据,在浪费了大量的人力物力的同时无法做到有效的监控,难以保证信息的准确性和及时性,而且居民的有效信息也难以快速的传递给社区工作站的工作人员。因此,社区管理的信息化就成为了人们向往的目标。社区管理人员非常需要既有先进的管理思想又适合国内社区和社区信息管理和实用的网站,作为对社区管理实
5、现有目标和提高现有水平的重要手段。针对这种情况,社区的管理网站应运而生。本论文的研究,是运用所学的知识来设计一个完整网站的后台管理系统。(二)选题内容1课题的总体介绍社区管理员可以登录后台管理系统,对已注册的用户进行删除管理和用户权限的管理;及时更新前台信息,包括社区公告,居民留言,新闻信息,社区生活信息,也可以对已更新的信息进行删除管理;实现对论坛的管理;页面内的搜索。通过网站的管理实现了社区的信息化的进程,提高了社区工作站的办事效率,方便了居民的生活。2指导思想及技术路线本系统主要采用框架结构,即iframe技术,将多个页面以框架的形式组合起来,使得操作简单易行。而对于数据库的创建,则是利
6、用SQL Server 2000技术来解决。SQL Server 2000是Microsoft公司推出的SQL Server 数据库管理系统的一个版本。3应解决的主要问题社区管理员可以对论坛的帖子进行转移、置顶,并对有关帖子设置精华。由于能力有限经反复测试失败后,只能实现对论坛的删除的功能,并添加论坛的回收站管理功能。在线聊天的功能用现今流行的PowerTalkBox控件实现,通过绑定Msn来实现多个用户和一个客服进行交流。用三层架构来实现数据的添加、删除和修改。二、系统设计相关介绍(一)ASP.NET技术介绍ASP.NET被描述为一门技术而不是一种语言,这一点很重要。该技术通过编程语言访问。
7、本系统选用的语言是C#,即我们将利用C#创建Web页面,而利用ASP.NET来驱动它。基于ASP.NET技术的系统结构模型ASP.NET结构是一个三层系统:UI层、业务逻辑层和数据访问层,具体如图1所示:图1 ASP.NET的系统三层架构结构模型数据库业务逻辑层处理逻辑关系,数据的有效性判断等。传递Sql语句返回所需要的数据操作数据库数据访问层:从逻辑层接收Sql指令;到数据库中读取所需要数据;xxxx社区网站后台管理系统中主要运用了用户表示层、业务逻辑层和数据访问层,下面对三层架构进行介绍:用户表示层(UI,简称USL)负责与用户交互,接收用户的输入并将服务器端传来的数据呈现给客户。业务逻辑
8、层(Business Logic Layer,简称BLL)是表示层与数据访问层之间的桥梁,负责数据处理、传递。 用于访问数据层,从数据层获取数据、修改数据以及删除数据,并把取得的数据放到Data Reader或Dataset中返回给表现层。数据访问层(Database Access Layer,简称DAL)是直接和数据库进行交互的地方,也是整个系统里唯一允许访问数据库的地方。该层所做事务直接操作数据库,针对数据的增添、删除、修改、更新、查找等。除此之外,还有一个业务实体层,这个层比较特殊,就是定义实体类的地方,变成一个公共层。(二)ASP.NET图形编程技术介绍在各种黑客攻击中,很常见的就是套
9、取用户名和密码,其中很多是采用枚举字典的方式来不断的测试用户名和密码。验证码技术是目前很多WEB程序采用的一种安全防御技术。系统在登录的时候不但要输出用户名和密码,还要额外输入一种随机生成的验证码文本,此时用户需要正确的输入这三个信息才能登录到系统中。验证码技术使用了一定的图形编程。首先建一个图片服务页面(CheckCode.aspx),专门用于提供包含验证码文本的图片。其HTML代码很简单,只有一行,不输出任何内容。在其Page_Load方法中就有创建验证码图片的过程。protected void Page_Load(object sender, EventArgs e) / 在此处放置用户
10、代码以初始化页面 Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache); SessionSjjh_VCode = GenerateCheckCode(); this.CreateCheckCodeImage(SessionSjjh_VCode.ToString(); /获取随即产生的数字 private string GenerateCheckCode() int number; char code; string checkCode = String.Empty; Random random = new Ran
11、dom(); for (int i = 0; i 5; i+) /产生5个随机数 number = random.Next(); code = (char)(0 + (char)(number % 10); checkCode += code.ToString(); return checkCode; /创建生成验证码的图片 private void CreateCheckCodeImage(string checkCode) if (checkCode = null | checkCode.Trim() = String.Empty) return; System.Drawing.Bitma
12、p image = new System.Drawing.Bitmap(int)Math.Ceiling(checkCode.Length * 12.5), 23); / 创建位图绘制对象 Graphics g = Graphics.FromImage(image); / 绘制验证码文本 /生成随机生成器 Random random = new Random(); /图片背景色 g.Clear(Color.Blue); /画图片的背景噪音线 Font font = new System.Drawing.Font(Arial, 12, (System.Drawing.FontStyle.Bold
13、 | System.Drawing.FontStyle.Italic); System.Drawing.Drawing2D.LinearGradientBrush brush = new System.Drawing.Drawing2D.LinearGradientBrush(new Rectangle(0, 0, image.Width, image.Height), Color.White, Color.Silver, 1.2f, true); g.DrawString(checkCode, font, brush, 2, 2); /调用图形绘制对象的DrawString函数将验证码文本显
14、示在这个位图上 /画图片的前景噪音点 for (int i = 0; i 88; i+) int x = random.Next(image.Width); int y = random.Next(image.Height); image.SetPixel(x, y, Color.FromArgb(random.Next(); /画图片的边框线 g.DrawRectangle(new Pen(Color.Gold), 0, 0, image.Width - 1, image.Height - 1); System.IO.MemoryStream ms = new System.IO.Memor
15、yStream(); image.Save(ms, System.Drawing.Imaging.ImageFormat.Gif); Response.ClearContent(); Response.ContentType = image/Gif;/输出图片 Response.BinaryWrite(ms.ToArray(); 我们使用.NET框架中随机数生成器 Random类型来生成一个不定长的包含随机数字的文本,这就是验证码原始文本,我们将其保存在session中供以后使用。然后我们创建一个临时图片CreateCheckCodeImage()的方法,并据此创建一个临时的图像绘制对象,然后
16、调用Graphics的FromImage图形绘制对象,据此我们就可以计算出验证码图片的大小。其次我们创建一个位图对象,在此基础上创建一个图形绘制对象,然后调用图形绘制对象的DrawString函数将验证码文本绘制在这个位图上。绘制验证码后我们在图片上随机的制造杂点来混淆图片内容,为使背景图片颜色和整个登录界面的主色调相一致,故设为蓝色。这些杂点能严重的干扰程序辨认验证码文本。但人脑在辨认文本时能比较轻松的排除这些干扰。图片生成后页面就使用GIF格式将图片文档发送到客户端。验证码图片服务页面完成后,我们就可以利用这个页面来实现验证码技术。如图2用户登录界面(Login.aspx)所示:图2 用户
17、登录界面上面放置输入用户名,密码和验证码的三个文本输入框。其中验证码输入框后面放置一个图片,图片就来源于CheckCode.aspx页面。用户输入三个信息后点击确定按钮进行登录。则运行该按钮的服务器段代码。protected void btnLogin_Click(object sender, EventArgs e) /判断验证码输入是否错误 if (SessionSjjh_VCode.ToString() != txtCode.Text.Trim() JsUtil.ShowMsg(验证码错误!, ?); /用户登录定义用户帐号长度212个字符,密码长度215个字符,并在数据库表中查询是否存
18、在此用户。 string UserName = txtUserName.Text.ToString(); string PassWord = txtPwd.Text.ToString(); if (UserName.Length 12) JsUtil.ShowMsg(帐号长度必须为212个字符!, javascript:history.back(); if (PassWord.Length 15) JsUtil.ShowMsg(密码长度必须为215个字符! + PassWord.Length, javascript:history.back(); if (bll.Exists(and User
19、Name= + UserName + and Syspass= + PassWord + and UserType=SysMaster)/系统管理员登录 Sessionusername = txtUserName.Text.Trim(); Sessionusertype = user.UserType; JsUtil.ShowMsg(登录成功!, Main.aspx); if (bll.Exists(and UserName= + UserName + and Syspass= + PassWord + and UserType=Master)/管理员登录 Sessionusertype =
20、user.UserType; Sessionusername = txtUserName.Text.Trim(); JsUtil.ShowMsg(登录成功!, Main.aspx); if (bll.Exists(and UserName= + UserName + and Syspass= + PassWord + and UserType=User)/普通用户登录 JsUtil.ShowMsg(对不起,您没有权限登录!); else JsUtil.ShowMsg(用户名或密码不正确!, Login.aspx); 在该代码中,程序获得用户输入的用户名,密码和验证码,然后判断用户名密码是否正确
21、,还调用Session值来判断验证码是否正确。只有这三个信息都正确则登录成功,否则登录失败。在少数情况下,程序生成的验证码图片难以辨认,则需要重新提供新的验证码图片,此时我们在登录页面中可以双击这个图片来更新验证码图片。显示验证码图片的HTML代码片断为:用户单击图片后,浏览器重新调用CheckCode.aspx页面,于是服务器端的验证码文本用了新的,而图片内容也随之更新。由于每次尝试登录或更换验证码图片时,正确的验证码都是随机的发生改变,毫无规律,这样就很大的增强了登录页面的安全性。三、系统需求分析(一)系统功能需求社区网站后台管理系统,主要用于网站管理员实现对社区新闻信息的发布,修改删除;
22、用户会员的审核,权限设置等,对网站前台的各种信息发布修改删除等。具体要求如下:1网站常规管理模块网站常规管理模块分为退出系统,用户登录和系统管理三个子菜单。当管理员成功登录后,如点击“退出系统”,则会跳出对话框询问“是否真的要退出系统?”,点击“确定”,则退出系统,点击“取消”,则返回页面。点击“用户登录”,跳转到登录页面重新登录。点击“密码修改”,则实现管理员对自己的密码进行修改。2新闻中心管理模块新闻中心管理模块分为公告管理,发布公告,新闻管理,发布新闻,活动管理和发布活动六个子菜单。当管理员成功登录后,点击“公告管理”,则实现对前台社区公告的修改和删除管理(如下“新闻管理”和“活动管理”
23、与之同理)。点击“发布公告”,则可以发布公告栏的信息(如下“发布新闻”与“发布活动”与之同理)。3注册用户管理模块注册用户管理模块分为会员管理,留言管理和评论管理三个子菜单。当管理员成功登录后,点击“会员管理”,则实现对网站普通会员的修改权限和删除管理。点击“留言管理”,则实现对用户留言的回复和删除管理。点击“评论管理”,则实现对用户评论信息的删除管理。(注:此评论信息为用户对新闻中心的信息进行的评论)4四季论坛管理模块四季论坛管理模块分为帖子管理,回复管理和回收站管理三个子菜单。当管理员成功登录时,点击“帖子管理”,则实现对论坛帖子的删除管理(此删除管理,并不是真的删除帖子,而是将帖子删除到
24、回收站)。点击“回复管理”,则实现对帖子的ID号实现,回复删除管理。点击“回收管理”,则实现对帖子的删除后保存到回收站,在回收站中可实现帖子的恢复和删除管理。(二)开发及运行环境1软件环境: 操作系统:WINDOWS 2000/XP: 开发工具:VISUAL STUDIO 2005: 数据库管理系统:SQL SERVER 20002硬件环境: 硬盘大小:20GB以上磁盘空间: 显示分辨率:800600,建议1024768: 具备PENTIUM、512RAM及以上配置的微型计算机一台四、系统的概要设计(一)系统的框架图设计图3 网站后台管理系统框架图后台管理系统的框架图设计的主要思路有:用ifr
25、ame框架布局(Main.aspx),将多个页面以框架的形式组合起来,使得操作简单易行。系统的功能特点:管理员对前台信息进行即时的更新和删除,实现对注册用的权限管理等。操作简单方便、界面简洁美观,能更好的为社区管理员提供服务。(如图3)(二)系统的模块设计1登录页面的设计1.1设计思路在平时做项目或课程设计时,我们通常只是用最基本的用户名和密码来验证用户是否有权限登录。但是,在现在的软件运行环境下,恶意攻击网站的黑客无处不在,且攻击方式日益丰富,尤其是WEB系统由于其开放性更是遇到严峻的考验。在各种黑客攻击中,很常见的就是套取用户名和密码,其中很多是采用枚举字典的方式来不断的测试用户名和密码。
26、因此考虑到提高用户登录的安全性,在后台管理员登录时,除了输入基本的用户名和密码的文本框信息验证外,还添加了验证码技术。管理员正确输入用户名,密码和验证码时,点击“提交”按钮,提示“登录成功!”,并跳转到后台首页(Main.aspx);点击“取消”时,将用户名,密码和验证码的输入框内容清空。1.2界面实现(如图4)图4 登录页面的设计2后台页面的界面设计2.1设计思路由于后台管理系统主要是实现管理员管理前台界面的功能。因此,我采用iframe框架技术来实现布局,整体主要分为上、中、下三个部分。因为,顶部的导航和底部的版权声明不会改变,所以分别将导航定义为用户自定义控件放入(Top.ascx),底
27、部的版权声明定义为用户自定义控件放入(Footer.ascx)。中间部分采用左右布局,左边部分放置JavaScript技术实现的菜单,右边部分为功能实现的页面。实现网站常规管理,新闻中心管理,注册用户管理和四季论坛管理。其中包括各功能模块的增加、删除和修改。2.2界面实现(如图5)提示在线人数、IP地址和欢迎语句。图5 后台首面的界面设计五、系统的详细设计(一)后台管理系统流程图xxxx社区网站主要分为前台和后台,前台主要是社区信息的展示,包括社区概况、社区新闻、公告、活动信息,以及社区职能部门的介绍。后台主要是实现对前台信息的更新,包括社区新闻、公告、活动信息的即时更新,注册用户的角色管理,
28、论坛帖子管理等,具体如图6所示:图6 后台管理系统流程图(二)后台管理系统功能结构图xxxx社区网站后台管理系统主要分为四个模块:网站常规管理模块、新闻中心管理模块、注册用户管理模块、四季论坛管理模块。(如图7)功能结构常规管理论坛管理用户管理新闻管理退出系统用户登录密码修改公告管理发布公告新闻管理发布新闻活动管理贴子管理评论管理回复管理回收管理会员管理图7 xxxx社区网站后台管理系统功能结构图(三)数据表结构1系统数据表社区公告表表1 社区网站公告表NO字段字段描述数据类型主键非空1ID公告编号intYY2ClassID类别编号int Y3Title公告标题nvarchar(50)N4Wr
29、iter发布者nvarchar(50)N5Content公告内容Ntext(16)N6UpdateTime更新时间Datetime(8)N7Image活动图片nvarchar(50)N2系统数据表社区新闻表表2 社区网站新闻表NO字段字段描述数据类型主键非空1ID新闻编号intYY2ClassID类别编号int Y3Title新闻标题nvarchar(50)N4Writer发布者nvarchar(50)N5Content新闻内容Ntext(16)N6UpdateTime更新时间Datetime(8)N7Image新闻图片nvarchar(50)N3系统数据表活动表表3 社区网站活动表NO字段字
30、段描述数据类型主键非空1ID活动编号intYY2ClassID类别编号int Y3Title活动标题nvarchar(50)N4Writer发布者nvarchar(50)N5Content活动内容Ntext(16)N6UpdateTime更新时间Datetime(8)N7Image活动图片nvarchar(50)N4系统数据表会员表表4 社区网站会员表NO字段字段描述数据类型主键非空1UID会员编号intYY2UserName会员昵称nvarchar(50)N2Password密码nvarchar(50)N3SysPass系统密码nvarchar(50)N4RealName真实姓名nvarch
31、ar(50)N5Sex性别nvarchar(50)N6Email电子邮件nvarchar(50)N7Address地址nvarchar(50)N8WorkName工作nvarchar(50)N9Phone电话nvarchar(50)N10Birthday生日smalldatetimeN11Pic头像nvarchar(50)N12RegDate注册日期smalldatetimeN14UserType会员类别nvarchar(50)N5系统数据表评论表表5 社区网站评论表NO字段字段描述数据类型主键非空1CommentID评论编号intYY2ClassID类别编号int Y3ID帖子编号intN4
32、UID会员编号intN5Title评论标题varchar(50)N6Content评论内容varchar(50)N6UpdateTime更新时间Datetime(8)N7UserName会员昵称varchar(50)N6系统数据表帖子表表6 社区网站帖子表NO字段字段描述数据类型主键非空1ID帖子编号intYY2Username发布者nvarchar(50)N3BigClassID分类编号int N4UID会员编号intN5Title帖子标题nvarchar(100)N6Content帖子内容ntext(16)N7TopType置顶intN8IsBest精华bitN9ViewCount点击次数
33、intN10IsBesting是否精华bitN11IsDeleting是否删除bitN12IsGuest是否点击bitN13LastReplyID回复编号intN14LastReplyTime回复时间smalldatetimeN15LastReplyName回复者Nvarchar(255)N16LastReplyContent回复内容ntextN17AddTime发布时间smalldatetimeN18UpdateTime更新时间smalldatetimeN7系统数据表回复表表7 社区网站回复表NO字段字段描述数据类型主键非空1ID回复编号intYY2UID会员编号intN2BBSID帖子编号
34、int N3UserName会员昵称nvarchar(50)N4Title回复标题nvarchar(50)N5Content回复内容ntext(16)N6AddTime添加时间smalldatetimeN7AddOn继续添加nvarchar(50)N10UpdateTime更新时间smalldatetimeN(四)系统实现1管理员登录1.1界面实现(如图8)图8 管理员登录1.2设计思路与解决过程管理登录时,需要验证其用户名和密码是否与数据库中已注册的管理员信息一致,并且要验证其权限是否是“系统管理员”或是“普通管理员”,当权限验证通过后,进入后台主页进行管理操作,否则提示错误信息“对不起,您
35、没有权限登录!”。只有当管理员输入正确的用户名,密码和验证码,点击提交,提示“登录成功!”,并跳转到后台首页;若用户名、密码输入为空,则RequiredFieldValidator控件提示“不能为空”;若输入错误则提示“用户名或密码输入错误!”。 1.3主要代码/管理员登录(Login.cs)protected void btnLogin_Click(object sender, EventArgs e)=解析思路:判断情况一:判断用户输入的验证码是否与CheckCode.aspx页面传来的验证文本的Session值是否一致,当用户输入正确的用户名和密码和输入错误的验证码时,点击“提交”后提示
36、错误信息“验证码错误!“,否则继续执行下面代码。(如图9)图9 验证码错误= /判断验证码输入是否错误 if (SessionSjjh_VCode.ToString() != txtCode.Text.Trim() JsUtil.ShowMsg(验证码错误!, ?); =解析思路:判断情况二:判断用户输入的用户名和密码是否正确,当用户名小于2或大于12个字符串时,提示“账号长度必须为212个字符!“,当密码长度小于215个字符时,提示”密码长度必须为215个字符“。(如图10)图10 用户名或密码错误= /用户登录定义用户帐号长度212个字符,密码长度215个字符,并在数据库表中查询是否存在此
37、用户。 string UserName = txtUserName.Text.ToString(); string PassWord = txtPwd.Text.ToString(); if (UserName.Length 12) JsUtil.ShowMsg(帐号长度必须为212个字符!, javascript:history.back(); if (PassWord.Length 15) JsUtil.ShowMsg(密码长度必须为215个字符! + PassWord.Length, javascript:history.back();=解析思路:随即,调用三层架构中UserBll页面中的Exists方法,判断数据库中是否存在此权限用户,若存在,则提示“登录成功!“,若不存在则提示”用户名或密码错误!“,当验证用户没有此登录权限时,提示”对不起,请没有权限登录!“(如图11、12)图11 判断用户是否存在图12 用户成功登录= if (bll.Exists(and UserName= + UserName + and Syspass= + PassWord + and UserType=SysMaster)/系统管理员登录 Sessionid = user.UID; Sessionusername = txtUser
限制150内