1、登录与注册系统的规范有以下几个方面:(1)界面设计友好、美观。(2)数据存储安全、可靠。(3)信息分类清晰、准确。(4)提供灵活、方便的权限设置功能,使整个系统的管理分工明确。(5)具有易维护性和易操作性。以下是业务流程图:三、数据库设计本系统采用SQL SERVER 2005数据库,主要有3个表:logininfo,loginlog,entrylog.数据表logininfo用来存储后台会员名称,密码和基本资料。3.1用户信息表:下面是用户信息表表的具体内容: 用于保存用户注册的基本信息,包括用户名,密码,电子邮箱地址,联系方式等。表设计结构如图:字段类型长度说明IDInt4主键(自动编号)
2、NameVarchar50会员名Pass密码SexBit2性别Phone电话E_mail电子邮箱3.2注册日志表:LogindateDatetime8会员注册日期3.3登录日志表:Landingdate会员登录日期四、会员注册如果是新用户,那么在登录之前需要先注册为本系统会员。详细步骤如下:(1)在主页上单击“注册”按钮,则进入用户注册界面。 (2)如果填错,则可以单击“重置”按钮,那么填入的信息被清空。回到刚开始的界面。 (3)填好信息之后,可以单击“提交”按钮,那么信息会被保存到数据库表中。4.1、注册模块:(1)输入用户名,单击“检测而用户名”按钮,检测用户名是否存在。(2)如存在则重新
3、输入用户名用该用户登录。(3)若不存在则输入其他信息,验证过通过后点击“注册用户”按钮,完成注册同时向数据库中添加注册日志。4.2、安全性设计输入密码时,使用MD5加密技术向后台数据库添加用户密码信息。将信息保存到数据库前应考虑一下密码的安全性,MD5是单项加密,根据指定的密码和散列算法生成一个合适于存储在配置文件中的散列密码。引用的命名空间为System.Web.Security;语法:public static string HashPasswordForStoringInConfigFile (string password, string passwordformat);参数说明:Pa
4、ssword 要进行散列运算的密码;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命名空间。主要程序代码: p
5、rotected void ButtonisName _Click(object sender, EventArgs e) int i = isName(); if (i 0) RegisterStartupScript(yes, alert(会员名已经存在!) elseno可以注册! protected int isName() int i; string name = Textname.Text; if (name.Trim() != ) SqlConnection con = createloginconn(); con.Open(); SqlCommand com = new SqlC
6、ommand(select count(*) from logininfo where Name= + name + , con); return i = Convert.ToInt32(com.ExecuteScalar(); con.Close(); return i = 1; protected void ButtonLogin _Click(object sender, EventArgs e) if (i = 0) if (add() SqlConnection con = this.createloginconn();insert loginlog(name,logindate)
7、values( + Textname.Text + , + DateTime.Now.ToString() + ) com.ExecuteNonQuery(); Response.Write(注册成功!单击确定返回登陆页面location=landing.aspx;注册失败会员名已经存! public bool add() string pass = FormsAuthentication.HashPasswordForStoringInConfigFile(Textpass.Text, MD5 string email = TextEmail.Text; string address = T
8、extaddress.Text; string sql = insert into logininfo(name,pass,email,address) values( + pass+ +email + + address + SqlCommand com = new SqlCommand(sql, con); int i =Convert.ToInt32 (com.ExecuteNonQuery(); return true; return false;五、会员登录一般管理信息系统使用时都需要用户登录,用户通过登录界面选择操作员代码,并输入操作密码。如果操作员代码及操作密码与数据库的密码表内
9、事先保存的某条记录相匹配,则登录成功,这时用户可以对系统进行相应的操作;否则登录失败,退出系统。5.1、登录模块:(1)用户输入用户名、密码和验证码,如果正确点击登录跳转到主页面,同时向数据库添加登陆日志。若错误则不能跳转到主页面并给出相应提示。(2)单击“新会员注册”按钮,跳转到注册页面;(3)单击“修改密码”按钮,跳转到修改密码页面。5.2、验证码技术 验证码的作用是有效防止注册用户用特定程序集暴力破解方式进行不断的登录尝试来破解密码,不少网站为了防止用户利用机器人自动注册,登录,灌水,都采用了验证码技术。下面详细介绍验证码技术的实现。需要引用using System.Drawing ;u
10、sing System.IO;命名空间。主要代码如下:public partial class yanzhengma : System.Web.UI.Page protected void Page_Load(object sender, EventArgs e) string checkCode = CreateRandomCode(4); SessionCheckCode = checkCode; CreateImage(checkCode); private string CreateRandomCode(int codeCount) string allChar=0,1,2,3,4,5
11、,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 ( string randomcode = int temp; Random rand=new Random (); for (int i=0;icodeCount ;i+) int t=rand .Next (35); temp =t ; randomcode += allCharArray t; return randomcode ; private void CreateImage(string
12、 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 (宋体,20,System.Drawing .FontStyle .Bold ); Brush b = new System.Drawing.SolidBrush(Color.White); g.Clear
13、(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); 150; int x = rand.Next(image.Width); image.SetPixel(x, y, Color.FromArgb(ra
14、nd.Next(); System.IO.MemoryStream ms = new System.IO.MemoryStream(); image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg); Response.ClearContent(); Response.ContentType = image/Jpeg Response.BinaryWrite(ms.ToArray(); g.Dispose(); image.Dispose();5.3、实现的界面如下:5.4、用到的控件如下:控件类型空间名称用途TextBox控件Textname
15、TextpassTextbosyzm验证码Button控件Button1登录Button2重置Image控件Image1显示验证码linkButton控件linkButton1链接注册页面六、实验总结:我在此次项目中独自完成了项目的功能设计,结合所学知识综合运用,感觉效果挺好的。在设计过程中学到了很多东西,但同时也感到不足。以下是我的总结和体会。一、完成情况方面,数据库设计成功,数据传递良好,界面简约,控件属性正确搭建得体,功能实现正常,符合功能要求。二、项目收获方面,本项目是独自创作的第一个实验项目,在制作过程中收获了很多,主要有如下几个方面:将所学知识用于实践,深入理解了所学知识,运用更加
16、熟练。自己查阅资料,扩展了知识面,对项目开发过程有了深入详细了解。与他人合作,团队协作能力提升。代码编写水平提高三、存在不足方面:项目开发不是一帆风顺的,开发过程中也有些不足的地方准备不充分,入手困难,导致开发周期长开发环境运用不太熟练,编代码上有一定影响代码书写格式不太规范,易出现语法错误,影响开发进度四、修改感想方面,通过这次实验,我明白了很多,首先,做任何事情都要认真对待、详细了解、充分准备,其次,我需要进一步熟悉开发环境,提高代码编写水平,代码书写规范化,再次,在编写过程中尝试自己编写方法,改变方法,发散思维,最后,要有恒心毅力,刻苦进取。这个实验详细阐述了我的“登录/注册系统”的实现,在该模块的设计过程中,逐步深入,不断完善。首先添加了客户端验证和服务器端验证,然后添加了验证用户名的惟一性。用户通过登录会进入登录的界面。另外可以看到,ASP应用程序设计应该与其他技术如数据库技术紧密结合起来。这对我的知识储备提出了更高的要求。在以后的学习中,我将逐步学会如何在较高的层次上进行ASP应用程序的设计,以制作更好的网络应用程序。 通过本次实验的学习,我学会了ACCESS 数据库设计与实现的一般方法,了解了ASP技术。为以后的学习打下了良好的基础。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1