网站注册与登录系统报告 - 图文

更新时间:2024-05-19 07:44:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

随着人们在网络上的使用量增加,信息的传递增多,对网络安全性要求也越来越高,登录与注册功能的实现可以有效的防止一些非法用户的恶意破坏,起到一定的保护作用。

网站的很多功能都是需要会员才能使用,例如在网站上下载一些资料,查看文章,留言等。这就需要开发人员给网站设计登录与注册的功能。这样使用户成为会员后能使用更多的功能。本学期末,自己独立开发一个项目,实现网站会员登录与注册功能。通过本项目熟悉网站开发的基本流程,掌握相关技术,积累开发经验。 一、实验要求

这里用到的是前台用户的登录或注册,这部分包括两个子部分:其中一个为新用户注册,在这里我们可以通过注册浏览更多信息,注册后还可以发表自己的意见(此处置有注册并登录成功才可以使用);

另一个是用户登录,用户登录系统是一般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 Name 类型 Int Varchar 长度 4 50 说明 主键(自动编号) 会员名 Pass Sex Phone E_mail Varchar Bit Varchar Varchar 50 2 50 50 密码 性别 电话 电子邮箱

3.2注册日志表:

字段 ID Name Logindate 类型 Int Varchar Datetime 长度 4 50 8 说明 主键(自动编号) 会员名 会员注册日期

3.3登录日志表:

字段 ID Name Landingdate 类型 Int Varchar Datetime 长度 4 50 8 说明 主键(自动编号) 会员名 会员登录日期

四、会员注册

如果是新用户,那么在登录之前需要先注册为本系统会员。详细步骤如下:

(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(\ return con;

}

注意:

此方法中应用了System.Data.SqlClicent命名空间中的Sqlconnection对象,需要引用System.Data.SqlClicent命名空间。 主要程序代码:

protected void ButtonisName _Click(object sender, EventArgs e) {

int i = isName(); if (i > 0) {

RegisterStartupScript(\会员名已经存在!')\ } else {

RegisterStartupScript(\可以注册!')\ } }

protected int isName() {

int i;

string name = Textname.Text; if (name.Trim() != \ {

SqlConnection con = createloginconn(); con.Open();

SqlCommand com = new SqlCommand(\logininfo where Name='\

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())

{

SqlConnection con = this.createloginconn(); con.Open();

SqlCommand com = new SqlCommand(\

loginlog(name,logindate) values('\DateTime.Now.ToString() + \ com.ExecuteNonQuery();

Response.Write(\注册成功!单击确定返回登陆页面');location='landing.aspx';\ con.Close(); } else

Response.Write(\注册失败')\ } else

Response.Write(\会员名已经存!')\ }

public bool add() {

string name = Textname.Text; string pass =

FormsAuthentication.HashPasswordForStoringInConfigFile(Textpass.Text, \

string email = TextEmail.Text; string address = Textaddress.Text;

string sql = \values('\ SqlConnection con = this.createloginconn(); con.Open();

SqlCommand com = new SqlCommand(sql, con);

int i =Convert.ToInt32 (com.ExecuteNonQuery()); if (i > 0) {

return true; } else {

return false; }

con.Close(); }

五、会员登录

一般管理信息系统使用时都需要用户登录,用户通过登录界面选择操作员代码,并输入操作密码。如果操作员代码及操作密码与数据库的密码表内事先保存的某条记录相匹配,则登录成功,这时用户可以对系统进行相应的操作;否则登录失败,退出系统。 5.1、登录模块:

(1)用户输入用户名、密码和验证码,如果正确点击登录跳转到主页面,同时向数据库添加登陆日志。若错误则不能跳转到主页面并给出相应提示。 (2)单击“新会员注册”按钮,跳转到注册页面; (3)单击“修改密码”按钮,跳转到修改密码页面。 5.2、验证码技术

验证码的作用是有效防止注册用户用特定程序集暴力破解方式进行不断的

登录尝试来破解密码,不少网站为了防止用户利用机器人自动注册,登录,灌水,都采用了验证码技术。

下面详细介绍验证码技术的实现。 需要引用using System.Drawing ; using System.IO;命名空间。 主要代码如下:

public partial class yanzhengma : System.Web.UI.Page {

protected void Page_Load(object sender, EventArgs e) {

string checkCode = CreateRandomCode(4); Session[\ CreateImage(checkCode); }

private string CreateRandomCode(int codeCount) {

string

allChar=\ string [] allCharArray =allChar .Split (','); string randomcode = \

int temp;

Random rand=new Random (); for (int i=0;i

int t=rand .Next (35); temp =t ;

randomcode += allCharArray [t]; }

return randomcode ; }

private void CreateImage(string checkCode) {

int iwdth = (int)(checkCode.Length * 20.5);

System.Drawing.Bitmap image = new System.Drawing.Bitmap(iwdth, 30);

Graphics g = Graphics.FromImage(image); Font f=new System .Drawing .Font (\宋体\

Brush b = new System.Drawing.SolidBrush(Color.White); g.Clear(Color.BurlyWood);

g.DrawString(checkCode, f, b, 3, 3); Pen blackPen = new Pen(Color.Blue, 0); Random rand = new Random(); for (int i = 0; i < 2; i++) {

int y = rand.Next(image.Height);

g.DrawLine(blackPen, 0, y, image.Width, y); }

for (int i = 0; i < 150; i++) {

int x = rand.Next(image.Width); int y = rand.Next(image.Height);

image.SetPixel(x, y, Color.FromArgb(rand.Next())); }

System.IO.MemoryStream ms = new System.IO.MemoryStream(); image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg); Response.ClearContent();

Response.ContentType = \ Response.BinaryWrite(ms.ToArray()); g.Dispose(); image.Dispose(); }

}

5.3、实现的界面如下:

5.4、用到的控件如下: 控件类型 TextBox控件 Button控件 Image控件 linkButton控件

空间名称 Textname Textpass Textbosyzm Button1 Button2 Image1 linkButton1 用途 会员名 密码 验证码 登录 重置 显示验证码 链接注册页面 六、实验总结:

我在此次项目中独自完成了项目的功能设计,结合所学知识综合运用,感觉效果挺好的。在设计过程中学到了很多东西,但同时也感到不足。以下是我的总结和体会。

一、完成情况方面,数据库设计成功,数据传递良好,界面简约,控件属性正确搭建得体,功能实现正常,符合功能要求。

二、项目收获方面,本项目是独自创作的第一个实验项目,在制作过程中收获了很多,主要有如下几个方面:将所学知识用于实践,深入理解了所学知识,运用更加熟练。自己查阅资料,扩展了知识面,对项目开发过程有了深入详细了解。与他人合作,团队协作能力提升。代码编写水平提高

三、存在不足方面:项目开发不是一帆风顺的,开发过程中也有些不足的地方准备不充分,入手困难,导致开发周期长开发环境运用不太熟练,编代码上有一定影响代码书写格式不太规范,易出现语法错误,影响开发进度

四、修改感想方面,通过这次实验,我明白了很多,首先,做任何事情都要认真对待、详细了解、充分准备,其次,我需要进一步熟悉开发环境,提高代码编写水平,代码书写规范化,再次,在编写过程中尝试自己编写方法,改变方法,发散思维,最后,要有恒心毅力,刻苦进取。

这个实验详细阐述了我的“登录/注册系统”的实现,在该模块的设计过程中,逐步深入,不断完善。首先添加了客户端验证和服务器端验证,然后添加了验证用户名的惟一性。用户通过登录会进入登录的界面。另外可以看到,ASP应用程序设计应该与其他技术如数据库技术紧密结合起来。这对我的知识储备提出了更高的要求。

在以后的学习中,我将逐步学会如何在较高的层次上进行ASP应用程序的设计,以制作更好的网络应用程序。

通过本次实验的学习,我学会了ACCESS 数据库设计与实现的一般方法,了解了ASP技术。为以后的学习打下了良好的基础。

六、实验总结:

我在此次项目中独自完成了项目的功能设计,结合所学知识综合运用,感觉效果挺好的。在设计过程中学到了很多东西,但同时也感到不足。以下是我的总结和体会。

一、完成情况方面,数据库设计成功,数据传递良好,界面简约,控件属性正确搭建得体,功能实现正常,符合功能要求。

二、项目收获方面,本项目是独自创作的第一个实验项目,在制作过程中收获了很多,主要有如下几个方面:将所学知识用于实践,深入理解了所学知识,运用更加熟练。自己查阅资料,扩展了知识面,对项目开发过程有了深入详细了解。与他人合作,团队协作能力提升。代码编写水平提高

三、存在不足方面:项目开发不是一帆风顺的,开发过程中也有些不足的地方准备不充分,入手困难,导致开发周期长开发环境运用不太熟练,编代码上有一定影响代码书写格式不太规范,易出现语法错误,影响开发进度

四、修改感想方面,通过这次实验,我明白了很多,首先,做任何事情都要认真对待、详细了解、充分准备,其次,我需要进一步熟悉开发环境,提高代码编写水平,代码书写规范化,再次,在编写过程中尝试自己编写方法,改变方法,发散思维,最后,要有恒心毅力,刻苦进取。

这个实验详细阐述了我的“登录/注册系统”的实现,在该模块的设计过程中,逐步深入,不断完善。首先添加了客户端验证和服务器端验证,然后添加了验证用户名的惟一性。用户通过登录会进入登录的界面。另外可以看到,ASP应用程序设计应该与其他技术如数据库技术紧密结合起来。这对我的知识储备提出了更高的要求。

在以后的学习中,我将逐步学会如何在较高的层次上进行ASP应用程序的设计,以制作更好的网络应用程序。

通过本次实验的学习,我学会了ACCESS 数据库设计与实现的一般方法,了解了ASP技术。为以后的学习打下了良好的基础。

本文来源:https://www.bwwdw.com/article/rfm7.html

Top