网站会员登录与注册系统Word文档下载推荐.docx
- 文档编号:19110822
- 上传时间:2023-01-03
- 格式:DOCX
- 页数:18
- 大小:865.94KB
网站会员登录与注册系统Word文档下载推荐.docx
《网站会员登录与注册系统Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《网站会员登录与注册系统Word文档下载推荐.docx(18页珍藏版)》请在冰豆网上搜索。
会员注册与登录系统的业务流程图如下图所示:
业务流程图的绘制是按照业务的实际处理步骤和过程进行的。
业务流程图是一种系统分析人员都懂的共同语言,用来描述系统组织结构、业务流程。
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
会员名
Pass
密码
Sex
Char
10
性别
TrueName
真实姓名
Phone
电话
电子邮件
Address
地址
具体表格如下:
001
帅
女
帅帅
启东
LoginLog表用来存储会员注册日志,记录会员注册的时间。
会员每次注册,系统会把用户注册的名字和时间保存到LoginLog表格中。
表2LoginLog表结构
LoginDate
Datetime
8
会员注册时间
2012-04-28
EntryLog表用来存储会员登录日志,记录会员登录时间。
会员每次登录,系统会把会员登录的名字和时间保存到EntryLog表格中。
表3EnntryLog表结构
LandingDate
会员登录时间
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
HashPasswordForStoringInConfig
password,stringpasswordFormat)
参数说明:
password:
要进行散列运算的密码。
passwordFormat:
要使用的散列算法。
是string类型。
4.2、关键技术之验证控件
在用户添加注册信息时需要判断其输入信息的合法性,主要考虑的有:
会员名不能为空、两次密码是否一致等。
判断这些信息需要使用服务器验证控件。
RequiredFieldValidator非空验证控件
CompareValidator比较验证控件
RegularExpressionValidator正则表达式验证控件
......
验证控件及其主要设置属性和用途如下表所示:
验证控件ID
主要属性设置
用途
RequiredFieldValidatorName
ControlToValidate属性设置为TextName
判断用户名是否为空
ErrorMessage属性设置为“必须填写”
RequiredFieldValidatorPass
ControlToValidate属性设置为TextPass
判断密码是否为空
RequiredFieldValidatorEmail
ControlToValidate属性设置为TextE-mail
判断E-mail是否为空
CompareValidatorPass
ControlToCompare属性设置为TextPass
判断用户输入的两次密码是否一致
ControlToValidate属性设置为TextQrPass
ErrorMessage属性设置为“两次密码不一致”
RegularExpressionValidatorEmail
判断邮件格式是否正确
ValidationExpression属性设置为\w
ErrorMessage属性设置为“格式不正确”
4.3、功能实现
4.3.1、注册页面的运行结果如图所示:
4.3.2、主要操作步骤是:
(1)创建Web窗体,命名为login.aspx.
(2)在Default窗体中添加控件。
添加的主要控制及其用途如表所示:
控件类型
控件名称
标准/TextBox控件
TextName
输入会员名
输入昵称
TextPass
输入密码
TextQrPass
确认密码
TextTrueName
输入真实姓名
TextPhone
输入电话
TextEmail
输入电子邮件
TextAddress
输入地址
标准/Button控件
ButtonLogin
将信息添加到数据库
ButtonCancel
返回到登录页面
ButtonisName
判断用户是否存在
标准/RadioButton控制
RadioButtonWoman
选择女
RadioButtonMan
选择男
4.3.3、主要代码
调用自定义方法,并把注册时间和会员名添加到日志数据库中。
代码如下:
if(add()){
SqlConnectioncon=this.createLoginConn();
con.Open();
SqlCommandcom=newSqlCommand("
insertLoginLogvalues('
+DateTime.Now.ToString()+"
'
'
+TextName.Text+"
)"
con);
com.ExecuteNonQuery();
Response.Write("
<
script>
alert('
注册成功!
单击确定返回登陆页面'
location='
landing.aspx'
;
/script>
con.Close();
}
else
注册失败!
)<
}
加密后获取用户注册的相关信息的代码如下:
publicbooladd()
{
stringname=TextName.Text;
stringname1=TextName1.Text;
//使用MD5把用户添加的密码进行加密stringpass=FormsAuthentication.HashPasswordForStoringInConfig,"
MD5"
stringsex;
if(RadioButtonMan.Checked)
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();
SqlCommandcom=newSqlCommand(sql,con);
inti=Convert.ToInt32(com.ExecuteNonQuery());
if(i>
0)
returntrue;
returnfalse;
五、会员登录
本模块主要是用户通过会员管理系统的登录界面进入该系统。
用户输入正确的用户名和密码,系统会根据用户的身份进行相应权限划分;
如果登录信息有错误,则系统提示登入错误的信息,并且禁止系统用户进行任何操作。
会员登录主要是通过判断用户输入的会员名和密码是否和之前注册时存储在数据库中的会员名和密码相等,如果相等的话,那么登录就成功了。
同时,现在很多网站在登录页面中采用了验证码技术,这一技术的使用,有效防止了很多非法操作的产生。
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属性传参的方法将非法字符过滤掉。
SqlCommandcom=newSqlCommand
(“selectcount(*)fromlogininfowhereName=@name”,con);
com.Parameters.Add(newSqlParameter(“@name”,SqlDbType.VarChar,50));
com.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窗体中添加控件,添加的主要控件及用途如下表所示:
Textname
TextBoxYzm
输入验证码
ButtonLanding
“登录”按钮
HTML/Input(Reset)控件
Reset1
用于重新设置
标准/Image控件
Image1
用于显示验证码
标准/Linkbutton控件
LinkButton1
用于链接注册页面
LinkButton2
重新链接验证码
(3)主要程序代码如下:
判断验证码正确后判断用户名和密码,代码如下:
if(Session["
].ToString().Equals(TextBoxYzm.Text.ToString()))
{
try
SqlCommandcom=newSqlCommand("
selectcount(*)fromloginInfowhereName=@nameandPass=@ps"
com.Parameters.Add(newSqlParameter("
@name"
SqlDbType.VarChar,50));
com.Parameters["
].Value=TextName.Text;
com.Parameters.Add(newSqlParameter("
@ps"
].
Value=FormsAuthentication.HashPasswordForStoringInConfig,"
inti=(int)com.ExecuteScalar();
添加登录日志代码如下:
com=newSqlCommand("
insertEntryLogvalues('
+DateTime.Now.ToString()+"
Response.Redirect("
index.aspx"
密码或用户名错误!
catch(Exceptionerror)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网站 会员 登录 注册 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)