网站会员登录与注册系统方案.docx

上传人:b****6 文档编号:5946171 上传时间:2023-01-02 格式:DOCX 页数:18 大小:865.88KB
下载 相关 举报
网站会员登录与注册系统方案.docx_第1页
第1页 / 共18页
网站会员登录与注册系统方案.docx_第2页
第2页 / 共18页
网站会员登录与注册系统方案.docx_第3页
第3页 / 共18页
网站会员登录与注册系统方案.docx_第4页
第4页 / 共18页
网站会员登录与注册系统方案.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

网站会员登录与注册系统方案.docx

《网站会员登录与注册系统方案.docx》由会员分享,可在线阅读,更多相关《网站会员登录与注册系统方案.docx(18页珍藏版)》请在冰豆网上搜索。

网站会员登录与注册系统方案.docx

网站会员登录与注册系统方案

随着科学技术的进步,计算机行业的迅速发展,大大提高人们的工作效率。

在科技技术飞跃发展的现在,已经成为网络的实际载体,但是以前提供的服务已经不能满足广大网民们日益增长的需求,而一些稍微大一些的权限和特殊功能的开发,却使得的开发与后期的生存越来越困难,的注册与登录让越来越多的网民对有亲切感和归属感,同时这方面的操作方便容易,技术上也比较成熟,所以,会员登录和注册系统已经得到了广泛应用。

一、实验要求

在很多中,会员注册与登录用得越来越广泛,这既是给的安全添加了一份保障,很多资料的下载或者更深入的访问都需要使用到这个系统,同时系统的设置和构造也让使用的用户感到一种归属感和幸福感,每次登录就有一种亲切感。

在会员注册系统的设计方面:

会员注册时用户第一次访问某个或者页面的时候需要用到的,第一次使用时需要用户把自己的个人资料输入进去,然后由系统保存到数据库中,个人资料包括很多,各个都是不一样的,有的需要的资料多点,有的需要的资料少点,但最基本的用户名和密码是必须要的。

当系统保存了后,下次用户就变成是会员了,不用再注册,而是进行简单的登录就可以访问上次访问的了。

在会员注册上用到的技术有连接数据库技术和密码的加密技术,当然还需要用到判断用户名是否为空等信息所需要的服务器验证控件。

连接数据库用到SQLConnection对象和自定义方法CreateLoginConn。

加密技术用到的是MD5技术,这是一种单向加密技术。

验证控件的类型和属性在下面的用户注册这块有详细说明。

在会员登录系统的设计方面:

会员进行登录时,只要输入之前注册过的信息就行了。

在这里需要注意的是,密码和验证码一定要输入正确,特别是验证码,比较容易看错。

当登录成功后,就进入登录成功特有的页面。

这时,会员就可以访问想要看的或者页面了。

 

二、实验设计思路

2.1、功能概述

(1)判断用户输入的会员名和密码是否正确;

(2)利用验证码来防止用户的非法操作;

(3)用户登录成功添加登录日志;

(4)注册新的会员;

(5)判断注册新会员名是否已经被使用;

(6)判断用户输入的一些资料是否合法;

(7)用户注册成功添加注册日志。

2.2、业务流程图

业务流程图就是用一些规定的符号及连线来表示某个具体业务处理过程。

业务流程图是一种描述系统各单位、人员之间业务关系、作业顺序和管理信息流向的图表,利用它可以帮助分析人员找出业务流程中的不合理流向,它是物理模型。

这里主要包括两种操作:

用户登录和用户注册。

如果要完成用户登录,则一定要有一个表单页面,此页面可以输入登录用户名和密码,然后将这些信息提交到一个验证的jsp页面上进行数据库的操作验证,如果可以查询到用户名和密码,那么就表示此用户是合法用户,则可以跳转到登录成功页。

如果没有查询到表示此用户是非法用户,应该跳转到错误页面提示。

运行登录页面后,如果没有注册会员,可以单击“会员注册”按钮跳转到会员注册页面,在此页面中可以先判断用户输入的会员名是否存在,如果存在,则需要重新选择会员名,如果不存在,用户可以继续输入个人资料来完成注册,完成注册后,添加注册日志。

如果用户已经注册过,则直接输入会员名、密码和验证码,单击“登录”按钮进行登录。

在单击“登录”按钮时,系统首先判断用户输入的验证码是否正确,如果正确,再判断用户输入的会员名和密码是否正确,都正确后,登录就成功了。

会员注册与登录系统的业务流程图如下图所示:

业务流程图的绘制是按照业务的实际处理步骤和过程进行的。

业务流程图是一种系统分析人员都懂的共同语言,用来描述系统组织结构、业务流程。

2.3、文件组织结构

其中:

index.aspx是登录成功后跳转的页面

Landing.aspx是登录页面

Login.aspx是注册页面

Web.config是配置文件

ValidateCode.aspx是产生验证码页面

接下来对Web.config配置文件进行简单说明:

应用程序配置文件Web.config——用于应用程序特定的设置。

配置Web.config文件需要两步:

1)设置SessionStateSessionState称为会话状态,可以在SessionState节中指定一个Session是否超时、是否启用或支持Cookies等。

2)用户身份验证与授权ASP.NET中提供了4种身份验证方式:

None、Windows、Forms、Passport。

三、数据库设计

数据库是整个系统的基石,数据库的设计优劣直接影响到整个系统的设计成败,在此对数据库的设计进行专门阐述。

数据库设计(DatabaseDesign)是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。

在数据库领域,常常把使用数据库的各类系统统称为数据库应用系统。

在设计和操作维护数据库时,关键的步骤就是要确保数据正确地分布到数据库的表中。

使用正确的数据结构,不仅便于对数据库进行相应的存取操作,而且可以极简化应用程序的其他容(查询、窗体、报表、代码等)。

这个系统需要使用数据库来存储相关的信息,数据库是整个系统的基础,只有将数据库框架搭建起来,才能完成子模块的编辑、实施。

为方便数据的维护和数据的有效扩充,这里采用的数据库开发工具是MicrosoftSQLServer2005

3.1、数据库以及表的建立

首先,进入MicrosoftSQLServer2005,并新建数据库

右击数据库,选择新建数据库

接下来新建数据库,名字为MemberLanding

接下来,进入到数据库MemberLanding,添加三表格,分别是信息表LoginInfo、注册日志表LoginLog、登陆日志表EntryLog。

如图:

3.2、数据库以及表的信息

数据库名称为MemberLanding,在此数据库中创建三个表,分别为:

(1)信息表,表名:

LoginInfo

(2)注册日志表,表名:

LoginLog

(3)登陆日志表,表名:

EntryLog

并设置相应的字段,管理各功能模块中的详细容。

LoginInfo表用来存储后台会员名称、密码和基本资料。

在进行会员注册时,会输入如下表格中的信息,然后进行注册,经过注册,会把所有的信息全部保存到数据库中,这样下次会员登录时就可以直接输入用户名和密码了。

表1LoginInfo表结构

字段

类型

长度

说明

ID

Varchar

50

主键

Name

Varchar

50

会员名

Pass

Varchar

50

密码

Sex

Char

10

性别

TrueName

Varchar

50

真实

Phone

Varchar

50

Email

Varchar

50

电子

Address

Char

10

地址

具体表格如下:

ID

Name

Pass

Sex

TrueName

Phone

Email

Address

001

09142101

帅帅

4335qq.

启东

 

LoginLog表用来存储会员注册日志,记录会员注册的时间。

会员每次注册,系统会把用户注册的名字和时间保存到LoginLog表格中。

表2LoginLog表结构

字段

类型

长度

说明

ID

Varchar

50

主键

Name

Varchar

50

会员名

LoginDate

Datetime

8

会员注册时间

具体表格如下:

ID

Name

LoginDate

001

2012-04-28

EntryLog表用来存储会员登录日志,记录会员登录时间。

会员每次登录,系统会把会员登录的名字和时间保存到EntryLog表格中。

表3EnntryLog表结构

字段

类型

长度

说明

ID

Varchar

50

主键

Name

Varchar

50

会员名

LandingDate

Datetime

8

会员登录时间

具体表格如下:

ID

Name

LandingDate

001

2012-04-28

 

3.3、数据库连接代码

创建连接:

SqlConnectioncon=newSqlConnection("DataSource=localhost;InitialCatalog=MemberLanding;IntegratedSecurity=True;UserID=sa;Password=;");

四、会员注册

在开发或其他系统时,会员注册的使用非常普遍,会员注册有很大的好处,不仅使得被访问的更安全,同时也拉近了和用户的距离。

会员注册需要考虑用户添加的注册信息是否合法,会员名是否被使用等。

4.1、关键技术之加密技术

密码的安全性是很重要的,加密主要有单向和双向,单向就是只能对数据进行加密,但是不能解密。

而双向就不一样了,双向加密也是很常用的,既可以加密,也可以解密。

当然在本系统设计中,我们采用单向加密MD5技术。

MD5是信息-摘要算法的缩写,被广泛用于加密和解密技术上,它可以说是文件的“数字指纹”。

任何一个文件,无论是可执行程序、图像文件、临时文件或者其他任何类型的文件,也不管它体积多大,都有且只有一个独一无二的MD5信息值,并且如果这个文件被修改过,它的MD5值也将随之改变。

因此,我们可以通过对比同一文件的MD5值,来校验这个文件是否被“篡改”过。

MD5加密技术(单向加密),根据指定的密码和散列算法生成一个合适于存储在配置文件中的散列密码。

命名空间为:

System.Web.Security

语法为:

Publicstaticstring

HashPasswordForStoringInConfigFile(string

password,stringpasswordFormat)

语法为:

Publicstaticstring

HashPasswordForStoringInConfigFile(string

password,stringpasswordFormat)

参数说明:

password:

要进行散列运算的密码。

passwordFormat:

要使用的散列算法。

是string类型。

4.2、关键技术之验证控件

在用户添加注册信息时需要判断其输入信息的合法性,主要考虑的有:

会员名不能为空、两次密码是否一致等。

判断这些信息需要使用服务器验证控件。

RequiredFieldValidator非空验证控件

CompareValidator比较验证控件

RegularExpressionValidator正则表达式验证控件

......

验证控件及其主要设置属性和用途如下表所示:

验证控件ID

主要属性设置

用途

RequiredFieldValidatorName

ControlToValidate属性设置为TextName

判断用户名是否为空

ErrorMessage属性设置为“必须填写”

RequiredFieldValidatorPass

ControlToValidate属性设置为TextPass

判断密码是否为空

ErrorMessage属性设置为“必须填写”

RequiredFieldValidatorEmail

ControlToValidate属性设置为TextE-mail

判断E-mail是否为空

ErrorMessage属性设置为“必须填写”

CompareValidatorPass

ControlToCompare属性设置为TextPass

判断用户输入的两次密码是否一致

ControlToValidate属性设置为TextQrPass

ErrorMessage属性设置为“两次密码不一致”

RegularExpressionValidatorEmail

ControlToCompare属性设置为TextPass

判断格式是否正确

ValidationExpression属性设置为\w

ErrorMessage属性设置为“格式不正确”

4.3、功能实现

4.3.1、注册页面的运行结果如图所示:

4.3.2、主要操作步骤是:

(1)创建Web窗体,命名为login.aspx.

(2)在Default窗体中添加控件。

添加的主要控制及其用途如表所示:

控件类型

控件名称

用途

标准/TextBox控件

TextName

输入会员名

TextName

输入昵称

TextPass

输入密码

TextQrPass

确认密码

TextTrueName

输入真实

TextPhone

输入

TextEmail

输入电子

TextAddress

输入地址

标准/Button控件

ButtonLogin

将信息添加到数据库

ButtonCancel

返回到登录页面

标准/Button控件

ButtonisName

判断用户是否存在

标准/RadioButton控制

RadioButtonWoman

选择女

RadioButtonMan

选择男

4.3.3、主要代码

调用自定义方法,并把注册时间和会员名添加到日志数据库中。

代码如下:

if(add()){

SqlConnectioncon=this.createLoginConn();

con.Open();

SqlCommand=newSqlCommand("insertLoginLogvalues('"+DateTime.Now.ToString()+"','"+TextName.Text+"','"+DateTime.Now.ToString()+"')",con);

.ExecuteNonQuery();

Response.Write("");

con.Close();

}

else

Response.Write("");

}

加密后获取用户注册的相关信息的代码如下:

publicbooladd()

{

stringname=TextName.Text;

stringname1=TextName1.Text;

//使用MD5把用户添加的密码进行加密stringpass=FormsAuthentication.HashPasswordForStoringInConfigFile(TextPass.Text,"MD5");

stringsex;

if(RadioButtonMan.Checked)

{

sex="男";

}

else

{

sex="女";

}

stringtrueName=TextTrueName.Text;

stringphone=TextPhone.Text;  

stringaddress=TextAddress.Text;  

stringemail=TextEmail.Text;  

stringsql="insertintologinInfovalues('"+DateTime.Now.ToString()+"','"+name+"','"+pass+"','"+sex+"','"+trueName+"','"+phone+"','"+email+"','"+address+"')";

SqlConnectioncon=this.createLoginConn();

con.Open();

SqlCommand=newSqlCommand(sql,con);

inti=Convert.ToInt32(.ExecuteNonQuery());

if(i>0)

{

returntrue;

}

else

{

returnfalse;

}

con.Close();

}

五、会员登录

本模块主要是用户通过会员管理系统的登录界面进入该系统。

用户输入正确的用户名和密码,系统会根据用户的身份进行相应权限划分;如果登录信息有错误,则系统提示登入错误的信息,并且禁止系统用户进行任何操作。

会员登录主要是通过判断用户输入的会员名和密码是否和之前注册时存储在数据库中的会员名和密码相等,如果相等的话,那么登录就成功了。

同时,现在很多在登录页面中采用了验证码技术,这一技术的使用,有效防止了很多非法操作的产生。

5.1、防止SQL注入式攻击

在判断用户输入的会员名和密码是否和数据库中的相等时,需要注意SQL注入式攻击,它是指利用设计上的漏洞,在目标服务器上运行SQL命令以及进行其他方式的攻击。

例如在输入会员名的文本框中输入名“mr”,然后用SQL语句查找数据库中符合条件的记录有几条。

SQL语句如下:

Selectcount(*)fromLoginInfowhereName=‘mr’

如果在文本框中输入“mr’or’1’”那么SQL语句如下:

Selectcount(*)fromLoginInfowhereName=mr’or’1’

这样一条SQL语句作用是查找出LoginInfo表中所有记录

为了防止这样的SQL语句注入攻击,通常使用:

SqlCommand.Parameters属性传参的方法将非法字符过滤掉。

代码如下:

SqlCommand=newSqlCommand

(“selectcount(*)fromlogininfowhereName=name”,con);

.Parameters.Add(newSqlParameter(“name”,SqlDbType.VarChar,50));

.Parameters[“name”].Value=TextName.Text;

5.2、验证技术

在登录、发表评论时,往往都需要用户输入验证码,所谓验证码就是将一串随机产生的数字或符号,生成一幅图片,图片里加上一些干扰像素,由用户肉眼识别其中的验证码信息,输入表单提交验证,成功后才能使用某些功能。

验证码的主要用途是用于防止有人利用机器人自动批量注册、对特定的用户用特定程序暴力破解方式进行不断的登录、灌水。

在一些常见的大型,用户在未登录的情况下进行发帖就需要输入验证码,这样可以避免某些恶意的大规模匿名回帖的攻击。

一般来讲,自动注册或者表单自动填写程序不能有效识别图片验证码中的数字或者字符,因此从一定程度上实现了阻挡攻击的作用。

在验证码产生的页面ValidateCode.aspx的page_load事件中实现了该技术。

首先在page_load中调用了自定义方法CreateRandomCode产生4个随机字符,在将随机字符保存到session中便于判断验证码输入的对错。

最后调用自定义方法CreateImage对4位随机字符产生干扰。

protectedvoidPage_Load(objectsender,EventArgse)

{

stringcheckCode=CreateRandomCode(4);

Session["CheckCode"]=checkCode;

CreateImage(checkCode);

}

在CreateImage方法中,绘制验证码需要应用Graphics类封装一个绘图图面、Font类定义字体字号和字形属性、Brush类定义填充图形的形状、Pen类定义用于绘制直线和曲线的对象,使用这几个类要添加命名空间using.System.Drawing最终实现在画布上输出字体的验证码,并加上干扰线。

5.3、登录功能的实现

主要操作步骤:

(1)创建web窗体,命名为landing.aspx。

此文件就表示登录页面了。

登录成功后,进入如下页面:

用户在登录页面写好用户名和密码,选择登录,登录成功则跳转到系统的首页,否则提示错误信息。

(2)在Default窗体中添加控件,添加的主要控件及用途如下表所示:

控件类型

控件名称

用途

标准/TextBox控件

Textname

输入会员名

TextPass

输入密码

TextBoxYzm

输入验证码

标准/Button控件

ButtonLanding

“登录”按钮

HTML/Input(Reset)控件

Reset1

用于重新设置

标准/Image控件

Image1

用于显示验证码

标准/Linkbutton控件

LinkButton1

用于注册页面

LinkButton2

重新验证码

(3)主要程序代码如下:

判断验证码正确后判断用户名和密码,代码如下:

if(Session["CheckCode"].ToString().Equals(TextBoxYzm.Text.ToString()))

{

try

{

con.Open();

SqlCommand=newSqlCommand("selectcount(*)fromloginInfowhereName=nameandPass=ps",con);

.Parameters.Add(newSqlParameter("name",SqlDbType.VarChar,50));

.Parameters["name"].Value=TextName.Text;

.Parameters.Add(newSqlParameter("ps",SqlDbType.VarChar,50));

.Parameters["ps"].

Value=FormsAuthentication.HashPasswordForStoringInConfigFile(TextPass.Text,"MD5");

inti=(int).ExecuteScalar();

if(i>0)

{

添加登录日志代码如下:

=newSqlCommand("insertEntryLogvalues('"+DateTime.Now.ToString()+"','"+TextName.Text+"','"+DateTime.Now.ToString()+"')",con);

.ExecuteNonQuery();

con.Close();

Response.Redirect("index.aspx");

}

else

{

Response.Write("");

}

}

catch(Exceptionerror)

{

Response.Write(error.ToString());

}

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

当前位置:首页 > 自然科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1