1.相关数据库定义
数据库的定义如任务1中表7-3和表7-4的定义一致。
2.功能的设计实现
(1)配置网站的目录结构
根据任务要求,将后台数据管理的页面加入网站根目录下的Admin文件夹中,将普通用户操作的查看订单、查看购物车等页面加入网站根目录下的User文件夹中。
另外,为了实现不同角色用户有不同的登录页面,这里做这样的处理:在Admin文件夹中添加AdminLogin.aspx页面作为属于“管理员”角色的用户的登录页面;在User文件夹中添加UserLogin.aspx页面作为属于“普通用户”角色的用户的登录页面;在网站根目录下添加RedirectLogin.aspx页,利用该页面,不同角色的用户登录网站时能够被引导至不同的登录页面。
(2)修改Web.config文件
不论是简单的Forms身份验证还是基于角色的Forms身份验证,都只能做到在访问一个受限的页面的时候跳转至一个设定好的登录页面。因此,在配置Web.config文件时本书分下面三种情况来完成:
1)根目录下的Web.config。
找到其中的</authentication mode="Windows">配置节,将其修改为如下形式:
以上配置信息使用户在访问受限页面时能够跳转至提交用户信息的登录页面。为实现管理员角色和普通用户角色能够使用不同的登录页面,这里的RedirectLogin.aspx只是一个中介,它并不实现真正的登录功能,真正的登录功能由Admin文件夹下的AdminLogin.aspx页面和User文件夹下的UserLogin.aspx页面来完成。
2)Admin文件夹下的Web.config。
在该Web.config下找到<configuration>配置节,在其中添加如下配置信息:
3)User文件夹下的Web.config。
在该Web.config下找到<configuration>配置节,在其中添加如下配置信息:
(3)定制登录页
根据前面的叙述,在该网站中有3个登录页面:RedirectLogin.aspx、AdminLogin.aspx和UserLogin.aspx。其中,RedirectLogin.aspx不实现真正的登录验证功能,只做跳转。(www.xing528.com)
1)RedirectLogin.aspx页面,在该页面中不需添加任何控件,只需在页面Page_Load中添加如下代码:
在使用Forms身份验证时,为了在跳转至登录页面后仍然能记住起初想访问的页面,或者说提供正确的身份票据后仍能回到原来想访问的页面,通常在地址栏中都会有一个关键字“ReturnUrl”,该关键字后面的信息就是记录用户起初想访问的页面。因此,上面的代码段也利用了这一特点来判断用户想访问的是哪个文件夹中的页面,可采用Substring的方法截取该Url中的信息来判断,从而实现登录页面的跳转。
2)AdminLogin.aspx页面,如图7-4所示。
图7-4 管理员登录页面
涉及的控件及属性设置如表7-7所示。
表7-7 涉及控件的相关属性
添加btnLogin控件的Click事件如下:
3)UserLogin.aspx页面,页面布局和控件属性如图7-3和表7-5所示。
(4)添加并修改Global.asax
在Global.asax中添加Application_AuthenticateRequest事件,在每次访问一个页面时该事件都会执行,用来判断用户提供的角色信息是否满足要求。
至此,本学习任务的设计与实现基本完成。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。