网站开发项目报告书33页DOCdoc.docx
《网站开发项目报告书33页DOCdoc.docx》由会员分享,可在线阅读,更多相关《网站开发项目报告书33页DOCdoc.docx(23页珍藏版)》请在冰豆网上搜索。
![网站开发项目报告书33页DOCdoc.docx](https://file1.bdocx.com/fileroot1/2022-11/25/98f8acbe-475b-42f8-9b46-7847def1e201/98f8acbe-475b-42f8-9b46-7847def1e2011.gif)
网站开发项目报告书33页DOCdoc
项目报告书
《注册与登录》
科目:
web项目开发
学号:
姓名:
班级:
软件10301班
一.项目概要
1.引言
现在网站功能越来越多,但很多的网站都需要用户是网站的会员,通过会员登录才能够使用网站中的一些功能。
会员的登录与注册已成为众多网站的基本功能之一。
2.项目名称
《网站会员的注册与登录》
3.项目目的
Ø掌握会员注册功能的实现
Ø了解验证控件的使用
Ø了解MD5加密技术
Ø掌握会员登录功能的实现
Ø了解验证码技术
Ø培养网站开发技术,积累相关开发经验
4.项目背景
现在网站的很多功能都是需要会员才能使用,例如在网站上下载一些资料,查看文章,留言等。
这就需要开发人员给网站设计登录与注册的功能。
这样使用户成为会员后能使用更多的功能。
本学期初,在老师带领之下学生独立开发一个web项目,实现网站会员登录与注册功能。
通过本项目熟悉网站开发的基本流程,掌握相关技术,积累开发经验。
5.项目开发人员
软件10301班师生成员
6.项目开发时间
2012年2~2012年3
二.可行性研究报告
1.概论
网站会员注册与登录项目运用.NET、数据库、MD5加密和C#相关技术,有其相应的运行环境,本案通过对其相应的研究确定开发可行性及注意事项。
2.可行性研究的前提
2.1项目的基本功能要求
本项目实例主要包括三种操作,即用户登录、用户注册及用户密码的修改。
用户运行登录界面,如果用户没有注册会员可以单击“新会员注册”按钮跳转到会员注册页面,在此页面可以先判断用户输入的会员名是否存在,如果存在需要输入会员名,如果不存在用户可以继续输入个人资料来完成注册,完成注册后添加注册日志。
如果用户名已经注册,则可以直接输入会员名、密码和验证码,单击“登录”按钮进行登录。
在单击“登录”按钮时,系统首先判断用户输入的信息和验证码是否正确,如果正确,再判断用户输入的会员名和密码是否正确,都正确后登录成功,同时添加登录日志。
在登录页面中,单击“修改密码”按钮,进入修改密码页面,在此页面用户可以修改原有密码。
2.2项目的实现目标
注册用户名并用该用户名登录进入首页,修改用户密码后重新登录。
使用验证码技术提高网站安全性。
2.3决定可行性的主要因素
技术、团队团结力、开发人员的意志和恒心
3.现有可行性分析
3.1现有知识内容
系统开发语言:
ASP.NET、C#语言、HTML语言基础、CSS样式布局
数据库:
SQLServer2005
3.2现有开发工具
系统开发环境:
MicrosoftVisualStudio2008
运行平台:
WindowsXP
Web服务器:
IIS
3.3系统大体流程设计
程序业务流程图
4.技术可行性分析
4.1系统的简要概述
该系统主要分为三部分:
登录部分、注册部分和修改密码部分。
为了方便用户者可以根据需求进行操作,本系统还可对用户的账号和密码进行进入管理。
需要用户注册用户名和密码。
4.2需用技术
.NET网站开发技术,C#程序设计语言,数据库技术,MD5加密技术
4.3技术可行性评价
满足相关相关技术要求和设备需求,可以开发本项目
5.结论意见
通过研究具备相关的开发条件,可以开发本项目。
开发过程中仍需进一步钻研、进取,结合所学知识综合运用,在实践中加深对知识的理解。
三.需求规格说明书
1.概论
网站会员的注册与登录功能的实现需要相应的开发和运行环境,本案介绍该项目在开发和运行过程中所需的准备工作和相关规格需求,以规范该项目,保证功能的完整性和网站的安全性。
2.任务概述
2.1项目目标
1、现在网站的很多功能都需要是会员才能登录,例如在网站上下载一些资料,查看某些文件,留言等。
这就需要开发人员给网站设计登陆和注册的功能。
这样使用户成为会员后能事更多的功能。
本项目的具体功能实现如下:
Ø判断用户输入的会员名和密码是否正确;
Ø利用验证码来防止用户的非法操作
Ø用户登录成功添加登陆日志
Ø注册新会员
Ø判断注册新的会员是否被用过
Ø判断用户输入的资料是否合法
Ø用户注册成功添加注册日志
2.2开发运行环境
系统开发环境:
MicrosoftVisualStudio2008
系统开发语言:
ASP.net+C#
运行平台:
WindowsXP
数据库:
SQLServer2005
Web服务器:
IIS
2.3系统规范要求
登录与注册系统的规范有以下几个方面:
(1)界面设计友好、美观。
(2)数据存储安全、可靠。
(3)信息分类清晰、准确。
(4)提供灵活、方便的权限设置功能,使整个系统的管理分工明确。
(5)具有易维护性和易操作性。
四.概要设计说明书
该项目主要有三个功能模块:
登录模块、注册模块和修改密码模块。
三个模块对应三个页面,有相应的数据在三个页面间传递。
本案主要介绍该项目的总体设计和对应的模块功能划分。
登录模块
用户登录主页面
(检验用户信息并登录新页)
注册模块
注册用户名和密码
(生成用户信息)
修改模块
修改用户密码
(修改用户信息)
1.模块说明
1.1登录模块:
(1)用户输入用户名、密码和验证码,如果正确点击登录跳转到主页面,同时向数据库添加登陆日志。
若错误则不能跳转到主页面并给出相应提示。
(2)单击“新会员注册”按钮,跳转到注册页面;
(3)单击“修改密码”按钮,跳转到修改密码页面。
1.2注册模块:
(1)输入用户名,单击“检测而用户名”按钮,检测用户名是否存在。
(2)如存在则重新输入用户名用该用户登录。
(3)若不存在则输入其他信息,验证过通过后点击“注册用户”按钮,完成注册同时向数据库中添加注册日志。
1.3修改模块:
(1)填写用户名、旧密码和新密码,单击“确认修改”按钮。
(2)若输入用户名及密码一致,则修改成功并更改后台数据库。
(3)若输入用户名及密码不一致,则弹出“修改失败”对话框。
2.数据库设计
本系统采用SQLSERVER2005数据库,主要有3个表:
logininfo,loginlog,rntrylog.数据表logininfo用来存储后台会员名称,密码和基本资料
数据库设计结构实效:
2.1用户信息表:
字段
类型
长度
说明
ID
Int
4
主键(自动编号)
Name
Varchar
50
会员名
Pass
Varchar
50
密码
Sex
Bit
2
性别
Phone
Varchar
50
电话
E_mail
Varchar
50
电子邮箱
表Logininfo的结构及实效
2.2注册日志表:
字段
类型
长度
说明
ID
Int
4
主键(自动编号)
Name
Varchar
50
会员名
Logindate
Datetime
8
会员注册日期
表Loginlog的结构及实效
2.3登录日志表:
字段
类型
长度
说明
ID
Int
4
主键(自动编号)
Name
Varchar
50
会员名
Landingdate
Datetime
8
会员登录日期
表entrylog的结构及实效
3.安全性设计
输入密码时,使用MD5加密技术向后台数据库添加用户密码信息。
将信息保存到数据库前应考虑一下密码的安全性,MD5是单项加密,根据指定的密码和散列算法生成一个合适于存储在配置文件中的散列密码。
引用的命名空间为System.Web.Security;
语法:
publicstaticstringHashPasswordForStoringInConfigFile
(stringpassword,stringpasswordformat);
参数说明:
Password要进行散列运算的密码;
Passwordformat要使用的散列算法
五.详细设计说明书
本案主要介绍各个页面的主要控件及功能实现,通过实例展现出项目开发的详细过程。
网页设计结构图
1.登录页设计
1.1验证码技术
验证码的作用是有效防止注册用户用特定程序集暴力破解方式进行不断的登录尝试来破解密码,不少网站为了防止用户利用机器人自动注册,登录,灌水,都采用了验证码技术。
下面详细介绍验证码技术的实现。
需要引用usingSystem.Drawing;
usingSystem.IO;命名空间。
新建一个页面命名为yanzhengma.aspx页面
主要代码如下:
publicpartialclassyanzhengma:
System.Web.UI.Page
{
protectedvoidPage_Load(objectsender,EventArgse)
{
stringcheckCode=CreateRandomCode(4);
Session["CheckCode"]=checkCode;
CreateImage(checkCode);
}
privatestringCreateRandomCode(intcodeCount)
{
stringallChar="0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,s,y,z,";
string[]allCharArray=allChar.Split(',');
stringrandomcode="";
inttemp;
Randomrand=newRandom();
for(inti=0;i{
intt=rand.Next(35);
temp=t;
randomcode+=allCharArray[t];
}
returnrandomcode;
}
privatevoidCreateImage(stringcheckCode)
{
intiwdth=(int)(checkCode.Length*20.5);
System.Drawing.Bitmapimage=newSystem.Drawing.Bitmap(iwdth,30);
Graphicsg=Graphics.FromImage(image);
Fontf=newSystem.Drawing.Font("宋体",20,System.Drawing.FontStyle.Bold);
Brushb=newSystem.Drawing.SolidBrush(Color.White);
g.Clear(Color.BurlyWood);
g.DrawString(checkCode,f,b,3,3);
PenblackPen=newPen(Color.Blue,0);
Randomrand=newRandom();
for(inti=0;i<2;i++)
{
inty=rand.Next(image.Height);
g.DrawLine(blackPen,0,y,image.Width,y);
}
for(inti=0;i<150;i++)
{
intx=rand.Next(image.Width);
inty=rand.Next(image.Height);
image.SetPixel(x,y,Color.FromArgb(rand.Next()));
}
System.IO.MemoryStreamms=newSystem.IO.MemoryStream();
image.Save(ms,System.Drawing.Imaging.ImageFormat.Jpeg);
Response.ClearContent();
Response.ContentType="image/Jpeg";
Response.BinaryWrite(ms.ToArray());
g.Dispose();
image.Dispose();
}
}
运行如图所示
图1-3
1.2页面设置:
控件类型
空间名称
用途
TextBox控件
Textname
会员名
Textpass
密码
Textbosyzm
验证码
Button控件
Button1
登录
Button2
重置
Image控件
Image1
显示验证码
linkButton控件
linkButton1
链接注册页面
运行实例如图:
1.3登录页面关键代码:
需要引用usingSystem.Data.SqlClient;
usingSystem.Drawing;命名空间;
publicpartialclass_Default:
System.Web.UI.Page
{
protectedvoidPage_Load(objectsender,EventArgse)
{
if(!
IsPostBack)
{
this.Image1.ImageUrl="~/ValidataCode.aspx";
}
}
protectedvoidLinkButton1_Click(objectsender,EventArgse)
{
this.Image1.ImageUrl="~/ValidataCode.aspx";
}
protectedvoidButton1_Click(objectsender,EventArgse)
{
stringname=Textname.Text.Trim();
stringpwd=Textpwd.Text.Trim();
stringcode=Textcode.Text.Trim();
stringstr="server=.;uid=sa;pwd=123;database=sss";
SqlConnectioncon=newSqlConnection(str);
try
{
con.Open();
stringstr2="selectcount(*)fromLogininfowherename=@nameandpass=@pwd";
SqlCommandcmd=newSqlCommand(str2,con);
cmd.Parameters.Add("@name",SqlDbType.VarChar,50);
cmd.Parameters["@name"].Value=name;
cmd.Parameters.Add("@pwd",SqlDbType.VarChar,50);
cmd.Parameters["@pwd"].Value=FormsAuthentication.HashPasswordForStoringInConfig,"MD5");
intcount=Convert.ToInt16(cmd.ExecuteScalar());
if(count>0&Session["checkCode"].ToString()==code)
{
this.Textcode.Text="";
Session["login"]="true";
cmd=newSqlCommand("insertentrylogvalues('"+Textname.Text+"','"+DateTime.Now.ToString()+"')",con);
cmd.ExecuteNonQuery();
//Response.Redirect("Sucess.aspx");
Response.Write("");
}
else
{
this.Textcode.Text="";
Response.Write("");
}
}
catch(Exceptionerror)
{
Response.Write(error.ToString());
}
}
2.注册页面设计
会员注册主要将用户输入的信息存储到数据库中,这里使用到了数据库的技术,通过使用SQLConnection对象链接数据库,将数据库做成一个自定义方法reeateloginconn在需要用到数据库链接时调用此方法。
2.1页面设置:
控件类型
控件名称
用途
TextBox
Textname
输入会员名
Textpass
输入密码
Textpasses
确认密码
Textphone
输入电话
Textmail
输入电子邮件
Button
btnlogin
将信息添加到数据库
btnreturn
返回都登录页面
btndete
检测是否有该用户
运行实例如图
2.2关键代码:
protectedSqlConnectioncreateloginconn()
{
SqlConnectioncon=newSqlConnection("server=.;database=xsdl;Integratedsecurity=SSPI;");
returncon;
}
注意:
此方法中应用了System.Data.SqlClicent命名空间中的Sqlconnection对象,需要引用System.Data.SqlClicent命名空间。
主要程序代码:
protectedvoidButtonisName_Click(objectsender,EventArgse)
{
inti=isName();
if(i>0)
{
RegisterStartupScript("yes","");
}
else
{
RegisterStartupScript("no","");
}
}
protectedintisName()
{
inti;
stringname=Textname.Text;
if(name.Trim()!
="")
{
SqlConnectioncon=createloginconn();
con.Open();
SqlCommandcom=newSqlCommand("selectcount(*)fromlogininfowhereName='"+name+"'",con);
returni=Convert.ToInt32(com.ExecuteScalar());
con.Close();
}
else
returni=1;
}
protectedvoidButtonLogin_Click(objectsender,EventArgse)
{
inti=isName();
if(i<=0)
{
if(add())
{
SqlConnectioncon=this.createloginconn();
con.Open();
SqlCommandcom=newSqlCommand("insertloginlog(name,logindate)values('"+Textname.Text+"','"+DateTime.Now.ToString()+"')",con);
com.ExecuteNonQuery();
Response.Write("");
con.Close();
}
else
Response.Write("");
}
else
Response.Write("");
}
publicbooladd()
{
stringname=Textname.Text;
stringpass=FormsAuthentication.HashPasswordForStoringInConfig,"MD5");
stringemail=TextEmail.Text;
stringaddress=Textaddress.Text;
stringsql="insertintologininfo(name,pass,email,address)values('"+name+"','"+pass+"','"+email+"','"+address+"')";
SqlConnectioncon=this.createloginconn();
con.Open();
SqlCommandcom=newSqlCommand(sql,con);
inti=Convert.ToInt32(com.ExecuteNonQuery());
if(i>0)
{
returntrue;
}
else
{
returnfalse;
}
con.Close();
}
3.修改密码页面设计
3.1界面设置:
单击“修改密码”超链接转到注册页面。
所有用户登录后都可以修改自己的密码,当输入的新密码两次一致是即可修改成功。
在窗体中添加控件,添加的主要控件及用途见下表1-5
控件类型
空间名称
用途
TextBox控件
Textbox1
会员名
Textbox2
密码
Textbox3
新密码
Textbox4
确认密码
Button控件
Button1
确认
Button2
取消
3.2关键代码:
需要引用usingSystem.Data.SqlClient;命名空间
publicpartialclassxiugaimima:
System.Web.UI.Page
{
protectedvoidPage_Lo