前言 近几年,Web开发技术飞速发展。与前几年相比,现今的Web开发人员开发的特性和功能在复杂性方面呈指数级增长。随着商业软件需求的不断增加,开发人员每天所用到的工具和开发框架的功能也必须不断加强。
ASP.NET问世后的几年中,它在易用性、功能、灵活性、可伸缩性以及上市时间方面,都经历了惊人的发展。ASP.NET凭借其速度、功能和可伸缩性等特性,使得因特网上的一些大型网站(包括戴尔、MySpace和微软)都使用了ASP.NET和.NET Framework。
不管你是计划建立下一个*大的社交网站、一个简单的博客网站,还是计划为期一年为企业构建业务范围(Line of Business)应用套件,要完成这些工作,ASP.NET都是你恰当的选择。
读者对象
本书适合要创建内容丰富、具备交互功能网站的专业开发人员阅读,它全面论述了利用不断发展的ASP.NET的所有工具和技术构建网站方面的知识。本书网站上有数百个在创建网站时可以直接使用的示例代码。
如果你是一位使用ASP.NET创建网站的新手,那么可以通过阅读本书学会关于使用ASP.NET Framework构建一个网站所需的所有知识。如果你是一位经验丰富的ASP.NET***,则可以使用本书学习ASP.NET 4的新特性。
预备知识
为*有效地使用本书,读者需要非常熟悉.NET Framework的核心概念。本书对于有经验的ASP.NET***是一本很好的参考书,又可为构建ASP.NET Web应用的开发人员提供全面的开发经验。本书示例清晰易懂,无论具有VB.NET 还是C#开发经验的***都可从中获益。
为了从数据库访问章节学到更多的知识,你还应该拥有一些使用Microsoft SQL Server、Oracle或者Microsoft Access等数据库的经验。为了使数据驱动示例更易于安装和测试,这些示例既可通过数据文件运行,也可通过SQL Server数据库运行。
如果你想运行本书中的每一个示例,至少应该在Windows Vista、Windows Server 2008或Windows 7环境下运行,以获得*佳效果。同时应该安装*新版的IIS(Internet Information Server,因特网信息服务)或某个版本的Visual Studio 2010。 ...... 本章内容
Login控件概览
使用Login控件
使用CreateUserWizard控件
使用LoginStatus控件
使用LoginName控件
使用ChangePassword控件
使用PasswordRecovery控件
使用LoginView控件
小结
使用ASP.NET Login控件可以轻易创建网站的用户注册系统,Login控件能用于显示用户注册表单、用户登录表单、修改密码表单和密码提示表单。
默认情况下,Login控件使用ASP.NET Membership来验证用户、创建新用户以及修改用户属性。在使用Login控件时,完成这些任务不需要编写任何代码。
注解
本书下一章将对ASP.NET Membership进行详细讨论。
1.1节将对Login控?作概览性的介绍,学习如何使用密码验证来保护网站的内容,以及如何让用户注册和登录网站。
本章其余部分将详细介绍如何使用Login控件提供的下列属性。
Login——用于显示用户登录表单。
CreateUserWizard——用于显示用户注册表单。
LoginStatus——用于根据当前用户的验证状态显示登录或登出链接。
LoginName——用于显示当前注册用户的用户名。
ChangePassword——用于显示修改用户密码的表单。
PasswordRecovery——用于显示用户通过邮件找回密码的表单。
LoginView——用于根据用户的验证状态或角色为不同的用户显示自定义内容。
1.1 Login控件概览
使用Login控件并不是一件轻松有趣的事,一般只在有机密信息需要保护时才使用。因此,让我们先来创建一个需要使用密码进行保护的页面。
在应用程序中创建一个名为SecretFiles的文件夹,并将代码清单1-1中的页面放入该文件夹中。
代码清单1-1 SecretFiles\Secret.aspx
代码清单1-1中的页面没有什么特?之处,它只是会显示信息This Page is Secret!(这个页面是保密的)。
如果希望通过密码身份验证来保护页面Secret.aspx,那么就需要对应用程序作两个配置更改:身份验证和授权设置。
首先,要为应用程序开启适当的身份验证类型。系统在默认情况下会启用Windows身份验证。但是只有在应用程序根目录下加入代码清单1-2中的Web配置文件,以启用Forms身份验证后,才能使用Login控件。
代码清单1-2 Web.config
代码清单1-2中的Web配置文件包含了一个验证元素?该元素有一个mode特性,并且这个特性的值为Forms。
注解
身份验证和授权的内容将在第2章详细讨论。
在默认情况下,任何用户都可以访问应用程序中的所有页面。如果要对某个文件夹的访问进行限制,那么就必须配置该文件夹的授权设置。
如果将代码清单1-3中的Web配置文件加入到SecretFiles文件夹中,那么匿名用户就不能再访问该文件夹中的任何页面了。
代码清单1-3 SecretFiles\Web.Config
代码清单1-3中的Web配置文件包含了一个授权元素。该元素包含了一个控制该目录授权规则的列表。代码清单1-3中的单一授权规则将阻止匿名用户访问该文件夹中的页面(属性值?表示匿名用户)。
Visual Web Developer注解
如果愿意,你还可以使用Web站点管理工具来配置身份验证和授权设置。该工具提供一个表单界面来执行对应用程序配置的修改。使用Visual Web Developer时,可以通过选取菜单选项:Website(网站)→ASP.NET Configuration(ASP.NET配置)来打开Web Site Administration Tool(Web站点管理工具)。
将代码清单1-3中的Web配置文件添加到SecretFiles文件夹中后,如果这时去尝试访问页面Secret.aspx,那么用户请求将会自动重定向到一个名为Login.aspx的页面上。因此,接下来需要创建的页面就是Login.aspx(在默认情况下,必须将该页面放置在应用程序的根目录中)。
代码清单1-4中的Login.aspx页面包含了一个Login控件,该控件将自动生成一个用户登录表单(见图1-1)。
代码清单1-4 Login.aspx
需要注意的是,Login控件包含了一个CreateUserText和一个CreateUserUrl属性。添加这些属性后,Login控件就会显示一个为该应用程序注册新用户的链接。代码清单1-4中Login控件的新建用户链接指向了一个名为Register.aspx的页面,而该页面的定义包含在代码清单1-5中。
代码清单1-5 Register.aspx
该页面中包含了一个CreateUserWizard控件,这个控件会自动创建用户注册表单(见图1-2)。在用户提交表单后,应用程序将创建一个新用户,并将用户请求重定向回页面Secret.aspx。