【asp源码栏目提醒】:网学会员在asp源码频道为大家收集整理了“ASP NET用户登录模块 - 编程语言“提供大家参考,希望对大家有所帮助!
第3章 用户管理模块用户登录控件与Request对象应用 用户管理模块是网站后台管理系统中必不可少的功能模块。
用户管理模块通常包括用户注册、用户登录和密码修改等功能。
用户管理模块可以防止非法用户登录到网站中非法篡改数据和其他一些非法操作从而保证了网站管理系统的安全性和可靠性。
本章首先讲解在
ASP.NET中的用户管理模块的具体实现然后讲解一个常用的用户管理模块的实现方法。
3.1 开发站点前的配置 在开发网站之前需要对站点作些必要的配置。
在
ASP.NET中可以通过站点配置工具
ASP.NET Configuration配置站点的一些公共属性如验证用户权限、类型等。
本节中将详细讲解此工具的使用方法。
3.1.1 创建Web网站和站点 在Visual Studio 2008中专用于站点建设的程序被称为“网站”。
通常情况下创建一个网站的操作步骤如下所示。
说明本书中所使用的开发环境为Microsoft发布的Visual Studio 2008。
1启动Visual Studio 2008依次执行“文件→新建→网站”命令如图3.1所示。
图3.1 创建Web网站 第3章 登录模块登录控件与Request对象应用 2随后将弹出“新建网站”对话框在该对话框中选择“
ASP.NET网站”项然后通过单击“浏览”按钮指定网站的创建的位置如图3.2所示。
图3.2 “新建网站”对话框 3单击“确定”按钮将打开创建网站的默认工作界面。
该界面分为代码区、属性窗口、解决方案资源管理器和设计区等几个窗口如图3.3所示。
说明在Visual Studio 2008的网站开发环境当中设计区提供了“设计”、“拆分”和“源”3种方式的设计界面用户可以方便地在这3个界面之间进行切换。
图3.3 新建网站的默认工作界面 在执行了上面的操作步骤之后在网站中将生成一个页面文件“Default.aspx”和代码文件“Default.cs”这样就完成了一个简单网站的创建工作。
注意在创建完网站之后按下“F5”键或单击工具栏中的“启动调试”按钮将会运行所创建的网站。
第3章 登录模块登录控件与Request对象应用 3.1.2 使用站点安全工具配置身份验证模式 使用站点安全工具可以配置身份验证模式和设置数据库引擎等功能。
身份验证模式让系统了解应该从哪里加载用户数据在
ASP.NET中主要提供了Windows验证和Forms验证两种验证模式其配置步骤如下所示。
1打开或者新建一个网站这里打开前面创建的“NewWeb”网站。
2执行“网站→
ASP.NET配置”命令如图3.4所示。
图3.4 选择“
ASP.NET配置”命令 3此时将打开“网站管理工具”页面。
从该页面中可以看出默认站点使用的是Windows验证方式。
4先关闭“网站管理工具”页面为应用程序配置数据提供程序和Forms验证方式打开网站中的“Web.config”文件修改其中的数据库连接和验证方式项其实现的代码如3.1所示。
注意在创建完新网站之后在按下F5键运行网站之后将回在网站中自动创建“Web.config”文件。
代码3.1 配置数据库连接和身份验证类型 注意代码中连接的数据库名称为MyDatas该数据库将在后面的章节中很用到。
图3.5 站点安全配置工具 5修改完成之后保存“Web.config”文件然后再次打开网站配置工具初始界面单击“安全”选项卡在安全选项界面中可以实现设置和编辑用户、角色和对站点的访问权限等有关网站安全性方面的操作。
如果单击“应用程序”选项卡将进入到应用程序配置界面当中在该界面中可以进行应用程序设置、SMTP设置、应用程序状态设置和调试和跟踪等针对应用程序的相关设置如图3.6所示。
图3.6 针对应用程序的相关设置 第3章 登录模块登录控件与Request对象应用 3.2 最普通的用户管理方式 在
ASP.NET 3.5中可以通过编写程序代码和使用登录控件两种方法实现开发网站的用户管理和登录模块。
有关通过编程实现开发的实现方法将在后面的章节中进行介绍本节中主要讲解使用登录控件开发网站用户管理和登录模块的实现方法。
说明登录控件中主要包括注册、登录、修改密码和显示状态等功能通过这几个功能实现对用户信息的管理。
3.2.1 用户注册 如果用户要使用网站的某些功能如论坛、留言或会员服务等功能通常需要通过网站的用户注册界面输入用户的注册信息。
用户只有通过注册验证并且登录网站才能够访问网站享受网站提供的某些服务功能。
用户注册功能可以使用登录控件来实现其具体实现的操作步骤如下所示。
1新建一个名称为“UserManage”的网站在网站的根目录下添加一个名称为“UserRegister”的Web窗体为用户提供注册界面。
2单击“设计”选项卡切换到窗体的设计视图执行“表→插入表”命令在弹出的“插入表格”对话框中设置插入表格的相关属性如图3.7所示。
设置完成之后单击“确定”按钮此时在Web窗体中将添加一个表格。
3在工具箱中的“登录”控件组中选择“CreateUserWizard”控件如图3.8所示。
图3.7 设置添加表格的属性 图3.8 选择“CreateUserWizard”控件 4将“登录”控件组中的“CreateUserWizard”控件拖曳到Web窗体的表格当中添加后的“CreateUserWizard”控件如图3.9所示。
第3章 登录模块登录控件与Request对象应用 图3.9 添加到Web窗体中的“CreateUserWizard”控件 5通常情况下用户注册操作分为两个步骤第一步是填写用户信息第二步是完成提示信息。
通过任务列表中的“步骤”下拉列表可以实现这两个步骤之间的切换。
6选中“步骤”下拉列表中的“完成”选项打开完成界面如图3.10所示。
图3.10 “CreateUserWizard”控件的“完成”界面 7在属性窗口中将“ContinueButtonText”属性修改为“完成”将“ContinueDestinationPageUrl”属性设置为当前站点的默认页“/Default.aspx”使得用户注册后能登录到网站的默认页。
8单击“步骤”下拉列表选择列表中的“注册新账户”命令返回到填写用户信息的界面当中。
右击“解决方案资源管理器”中的“UserRegister.aspx”然后选择“设为起始页”命令将注册页设置为起始页。
9运行程序在“注册新账户”页面中输入用户的注册信息如图3.11所示。
输入完成之后单击“创建用户”按钮创建新用户用户创建成功后显示网站的默认页。
注意首次注册新用户程序将会自动创建一个SQL Server数据库并且将注册信息保存到创建的数据库当中。
第3章 登录模块登录控件与Request对象应用 图3.11 注册新用户 3.2.2 用户的登录 对于已经注册过的用户可以不经过注册通过登录界面直接登录到网站当中。
用户登录界面的设计步骤如下所示。
1打开“UserManage”网站在网站的根目录下添加一个名称为“UserLogin”的Web窗体为用户提供登录界面。
2单击“设计”选项卡切换到窗体的设计视图执行“表→插入表”命令在Web窗体中将添加一个具有1行1列的表格。
3在工具箱中的“登录”控件组中选择“Login”控件将该控件拖曳到Web窗体的表格当中添加后的“Login”控件如图3.12所示。
图3.12 登录控件的界面窗口 4“Login”控件中包含了用户验证的过程不需要程序员添加任何的代码。
但是需要在属性窗口中控件的“DestinationPageUrl”属性值设置为当前站点的默认页“/Default.aspx”使得用户登录后进入到网站的默认页当中。
5右击“解决方案资源管理器”中的“UserLogin.aspx”然后选择“设为起始页”命令将登录页设置为起始页。
运行程序在“登录”页面中输入正确的用户名和密码信息之后将登录到网站系统进入到网站的默认页当中如图3.13所示。
注意用户在登录网站时如果选中“下次记住我”复选项则系统将会自动保存用户的登录信息。
第3章 登录模块登录控件与Request对象应用 图3.13 用户登录的运行界面 3.2.3 修改用户密码 用户登录到网站之后为了保证登录信息的安全性和可靠性用户可以根据需要修改自己的登录密码。
在
ASP.NET 3.5中提供了修改密码的控件通过这个控件可以实现修改用户密码的功能。
通过修改用户密码控件修改用户密码的实现方法如下所示。
1打开“UserManage”网站在网站的根目录下添加一个名称为“EditPass”的Web窗体为用户提供修改密码界面。
2单击“设计”选项卡切换到窗体的设计视图执行“表→插入表”命令在Web窗体中将添加一个具有1行1列的表格。
3在工具箱中的“登录”控件组中选择“ChangePassword”控件将该控件拖曳到Web窗体的表格当中添加后的“ChangePassword”控件如图3.14所示。
图3.14 密码修改控件的界面 4在“视图”下拉列表中选择“成功”选项进入到“成功”界面当中。
在该界面中可以看到更改成功后的提示信息。
在属性窗口中将控件的“ContinueButtonText”属性修改为“完成”为了让用户确定所作的修改还需要将“DisplayUserName”属性值设置为True表示在修改用户密码时将显示用户的名称。
5修改密码之后根据网站的流程转入到相应的网页当中。
本实例中将转到默认页当中这是通过将“ContinueDestinationPageUrl”属性设置为“/Default.aspx”实现的。
6单击“步骤”下拉列表选择列表中的“更改密码”命令返回到更改密码信息的界面当中。
右击“解决方案资源管理器”中的“EditPass.aspx”然后选择“设为起始页”第3章 登录模块登录控件与Request对象应用 命令将修改密码页设置为起始页。
运行程序在“修改密码”页面中分别输入用户的原密码和新密码等信息之后单击“更改密码”按钮更改用户的密码如图3.15所示。
图3.15 更改用户密码 3.2.4 在登录页面中添加注册导航功能 在登录控件“Login”中还可以添加导航功能以方便用户的登录操作。
下面就讲解以下在登录控件中添加导航功能的实现方法。
1打开“UserManage”网站并且打开“UserLogin.aspx”页面单击“设计”选项卡切换到页面的设计页面当中。
2选中“Login”控件进入到控件的属性窗口当中可以看到有很多以“Url”结尾的属性。
注册功能的导航属性为“CreateUserUrl”将该属性值修改为“/UserRegister.aspx”使导航指向用户注册功能页面。
3为了提示用户此导航的目的地需要将“CreateUserText”修改为“新用户注册”以便给用户一个提示。
设置完成后的属性窗口如图3.16所示。
4在属性窗口中设置了相关属性之后此时在登录页面中就多了一个注册的导航功能如图3.17所示。
图3.16 在属性窗口中设置导航功能 图3.17 登录界面中的注册导航 5运行程序如果用户没有注册可以单击“登录”界面中的“用户注册”如图第3章 登录模块登录控件与Request对象应用 3.18所示此时将进入到用户注册界面当中注册新用户如图3.19所示。
图3.18 单击注册导航“用户注册” 图3.19 单击导航后转到的用户注册界面 3.3 一个典型的用户管理模块 前面讲解了通过“登录”组件中的控件实现用户注册和登录等相关的操作。
实际上在开发网站时很少会使用控件来开发用户登录模块。
使用“登录”组件中的控件开发用户登录模块的优势在于用户不需要编写任何的程序代码只需要修改控件中的相关属性就可以实现。
但是缺点在于登录模式和功能固定只能够实现简单的登录功能不能够根据用户的需求去改变登录功能。
程序员通常会根据自己的需求通过设计网页和编写程序代码来实现开发用户管理模块中的各个功能。
本节中将讲解通过编写程序代码实现开发用户管理模块的实现方法。
3.3.1 用户注册 用户注册是用户管理的首要步骤用户要登录到网站当中首先需要注册用户。
下面讲解如何通过编写程序代码实现用户注册的功能。
1页面功能设计 用户注册功能的页面设计步骤如下所示。
1新建一个名称为“UserLogin”的网站在网站中添加一个名称为“UserManages”的Web窗体。
2在窗体上首先添加一个具有1行1列的表格在该表格中再添加一个具有5行2列的表格。
分别在表格的相应单元格中输入文字、添加文本框控件和按钮控件。
设计完成后的用户注册页面如图3.20所示。
说明如果需要在文本框中输入多行文本信息需要在该文本框控件的属性窗口中将控件的“TextMode”属性值设置为“MultiLine”。
第3章 登录模块登录控件与Request对象应用 图3.20 设计完成后的用户注册页面 2.设计思路与程序代码 登录用户在输入用户名和密码等注册信息之后在单击“注册”按钮时程序首先会判断用户是否已经输入了用户名和密码等信息如果没有输入则提示用户进行输入。
用户在输入了用户名和密码的前提下程序会再次判断用户输入的密码和确认密码是否一致如果不一致则提示用户重新进行输入如果输入的密码和确认密码也一致那么程序还会继续判断输入的注册信息在数据库中是否已经存在如果已经存在则该用户应经存在否则将保存用户注册信息这就是用户注册功能的设计思路如图3.21所示。
图3.21 用户注册功能实现的流程图 用户注册功能实现的程序代码如代码3.2所示。
代码3.2 用户注册功能的实现代码 protected void Button1_Clickobject sender EventArgs e if TextBox1.Text TextBox2.Text TextBox3.Text this.Page.RegisterStartupScriptss return else 第3章 登录模块登录控件与Request对象应用 //判断新密码和确认密码是否一致 if TextBox2.Text TextBox3.Text // 连接数据库 SqlConnection sqlcon new SqlConnectionConfigurationManager.ConnectionStringsconnection.ConnectionString sqlcon.Open string strselect select from tb_user where username TextBox1.Text.Trim SqlCommand sqlcmd new SqlCommandstrselect sqlcon string StrInsert // 执行查询判断保存的数据记录是否存在 SqlDataReader dr sqlcmd.ExecuteReader if dr.Read this.Page.RegisterStartupScriptss return // 关闭读操作 dr.Close //插入数据信息 StrInsert insert into tb_userusernamepwdmarks valuesusernamepwdmarks SqlCommand cmd new SqlCommandStrInsert sqlcon // 添加参数并且设置参数值 cmd.Parameters.Addusername SqlDbType.VarChar cmd.Parametersusername.Value this.TextBox1.Text.ToString cmd.Parameters.Addpwd SqlDbType.VarChar 20 cmd.Parameterspwd.Value this.TextBox2.Text.ToString cmd.Parameters.Addmarks SqlDbType.VarChar 1000 cmd.Parametersmarks.Value this.TextBox4.Text.ToString // 执行插入数据的操作 cmd.ExecuteNonQuery sqlcon.Close this.Page.RegisterStartupScriptss else this.Page.RegisterStartupScriptss 3.程序运行效果 将“UserManages.aspx”设置成起始页之后运行程序输入用户名、密码和确认密码等用户注册信息之后单击“注册”按钮用户的注册信息将被保存到数据库当中如图3.22所示。
第3章 登录模块登录控件与Request对象应用 注意在输入用户注册信息时要注意输入的密码和确认密码信息一致否则将不能够保存用户的注册信息。
图3.22 注册新用户的实现