网站注册与登录系统报告
- 格式:doc
- 大小:828.50 KB
- 文档页数:11
随着人们在网络上的使用量增加,信息的传递增多,对网络安全性要求也越来越高,登录与注册功能的实现可以有效的防止一些非法用户的恶意破坏,起到一定的保护作用。
网站的很多功能都是需要会员才能使用,例如在网站上下载一些资料,查看文章,留言等。这就需要开发人员给网站设计登录与注册的功能。这样使用户成为会员后能使用更多的功能。本学期末,自己独立开发一个项目,实现网站会员登录与注册功能。通过本项目熟悉网站开发的基本流程,掌握相关技术,积累开发经验。
一、实验要求
这里用到的是前台用户的登录或注册,这部分包括两个子部分:其中一个为新用户注册,在这里我们可以通过注册浏览更多信息,注册后还可以发表自己的意见(此处置有注册并登录成功才可以使用);
另一个是用户登录,用户登录系统是一般Web网站都有的子系统,其作用是限制该网站某些资源的使用,只有通过身份确认后的用户才可以访问系统为其设置的使用功能,从而为用户提供了安全的访问和数据操作,防止非法用户进入系统。有了登录自然要有注册,其实应该是相反的,先有注册才有登录。只不过注册通常是在登录模块的“登录”窗体下面加一个注册链接。
登录用到的技术有:首先在网站首页页面下创建一个表单,表单loginActionForm在WEB-INF/strus-config中进行了具体定义,表单被提交到loginAction.do映射中,通过在demo.logic包中的loginAction.java类中的execut()方法,使用serveletRequestSession().setAttribute(“user”,user) session语句获得登陆用户的相关信息,然后再执行demo.logic包中的user.java中的validate()方法,最后在显示页面显示登录是否成功,如果成功登陆,进入相应页面;如果不成功,返回首页,重新登录。
通过这次实验设计可以有如下体会:
(1)掌握会员注册功能的实现
(2)了解验证控件的使用
(3)了解MD5加密技术
(4)掌握会员登录功能的实现
(5)了解验证码技术
(6)培养网站开发技术,积累相关开发经验
二、设计思路
用户运行登录界面,如果用户没有注册会员可以单击“新会员注册”按钮跳转到会员注册页面,在此页面可以先判断用户输入的会员名是否存在,如果存在需要输入会员名,如果不存在用户可以继续输入个人资料来完成注册,完成注册后添加注册日志。如果用户名已经注册,则可以直接输入会员名、密码和验证码,单击“登录”按钮进行登录。在单击“登录”按钮时,系统首先判断用户输入的信息和验证码是否正确,如果正确,再判断用户输入的会员名和密码是否正确,都正确后登录成功,同时添加登录日志。在登录页面中,单击“修改密码”按钮,进入修改密码页面,在此页面用户可以修改原有密码。
登录与注册系统的规范有以下几个方面:
(1)界面设计友好、美观。
(2)数据存储安全、可靠。
(3)信息分类清晰、准确。
(4)提供灵活、方便的权限设置功能,使整个系统的管理分工明确。
(5)具有易维护性和易操作性。
以下是业务流程图:
三、数据库设计
本系统采用SQL SERVER 2005数据库,主要有3个表:logininfo,loginlog,entrylog.数据表logininfo用来存储后台会员名称,密码和基本资料。
3.1用户信息表:
下面是用户信息表表的具体内容:
用于保存用户注册的基本信息,包括用户名,密码,电子邮箱地址,联系方式等。表设计结构如图:
字段类型长度说明
ID Int 4 主键(自动编号)Name Varchar 50 会员名
3.2注册日志表:
3.3登录日志表:
四、会员注册
如果是新用户,那么在登录之前需要先注册为本系统会员。详细步骤如下:
(1)在主页上单击“注册”按钮,则进入用户注册界面。
(2)如果填错,则可以单击“重置”按钮,那么填入的信息被清空。回到刚开始
的界面。
(3)填好信息之后,可以单击“提交”按钮,那么信息会被保存到数据库表中。
4.1、注册模块:
(1)输入用户名,单击“检测而用户名”按钮,检测用户名是否存在。
(2)如存在则重新输入用户名用该用户登录。
(3)若不存在则输入其他信息,验证过通过后点击“注册用户”按钮,完成注册同时向数据库中添加注册日志。
4.2、安全性设计
输入密码时,使用MD5加密技术向后台数据库添加用户密码信息。
将信息保存到数据库前应考虑一下密码的安全性,MD5是单项加密,根据指定的密码和散列算法生成一个合适于存储在配置文件中的散列密码。
引用的命名空间为System.Web.Security;
语法:public static string HashPasswordForStoringInConfigFile (string password, string passwordformat);
参数说明:
Password 要进行散列运算的密码;
Passwordformat 要使用的散列算法
4.3、实现的界面如下:
4.4、主要代码如下:
protected SqlConnection createloginconn()
{
SqlConnection con = new
SqlConnection("server=.;database=xsdl;Integrated security=SSPI;"); return con;
}
注意:
此方法中应用了System.Data.SqlClicent命名空间中的Sqlconnection对象,需要引用System.Data.SqlClicent命名空间。
主要程序代码:
protected void ButtonisName _Click(object sender, EventArgs e) {
int i = isName();
if (i > 0)
{
RegisterStartupScript("yes", "");
}
else
{
RegisterStartupScript("no", "");
}
}
protected int isName()
{
int i;
string name = Textname.Text;
if (name.Trim() != "")
{
SqlConnection con = createloginconn();
con.Open();
SqlCommand com = new SqlCommand("select count(*) from logininfo where Name='" + name + "'", con);
return i = Convert.ToInt32(com.ExecuteScalar());
con.Close();
}
else
return i = 1;
}
protected void ButtonLogin _Click(object sender, EventArgs e)
{
int i = isName();
if (i <= 0)
{
if (add())