• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
我就是停不下来
业精于勤荒于嬉,行成于思毁于随
博客园    首页    新随笔    联系   管理    订阅  订阅

登录以及注册功能的分析

先从PetShop 4.0的登录注册开始分析.在PetShop 4.0中并没有对登录以及注册进行编码,而是使用被称作ASP.NET 成员资格的解决方案来实现的.以下是MSDN上对ASP.NET 成员资格的介绍:

   ASP.NET 成员资格为您提供了一种验证和存储用户凭据的内置方法。因此,ASP.NET 成员资格可帮助您管理网站中的用户身份验证。您可以将 ASP.NET 成员资格与 ASP.NET Forms 身份验证或 ASP.NET 登录控件一起使用以创建一个完整的用户身份验证系统。

ASP.NET 成员资格支持下列功能:

1.  创建新用户和密码。将成员资格信息(用户名、密码和支持数据)存储在 Microsoft SQL Server、Active Directory 或其他数据存储区。

2.  对访问站点的用户进行身份验证。可以以编程方式验证用户,也可以使用 ASP.NET 登录控件创建一个只需很少代码或无需代码的完整身份验证系统。

3.  管理密码,包括创建、更改和重置密码。根据您选择的成员资格选项不同,成员资格系统还可以提供一个使用用户提供的问题和答案的自动密码重置系统。

4.  公开经过身份验证的用户的唯一标识,您可以在您自己的应用程序中使用该标识,也可以将该标识与 ASP.NET 个性化设置和角色管理(授权)系统集成。

5.  指定自定义成员资格提供程序,这使您可以改为用自己的代码管理成员资格及在自定义数据存储区中维护成员资格数据成员资格、角色和用户配置文件

虽然成员资格是 ASP.NET 中用来进行身份验证的独立功能,但它可以与 ASP.NET 角色管理集成以便为站点提供授权服务。成员资格还可以与用户配置文件集成,以提供可为单个用户量身订做的特定于应用程序的自定义。

成员资格的工作原理:

   将应用程序配置为使用 Forms 身份验证(与 Windows 或 Passport 身份验证不同)。通常指定应用程序中的某些页或文件夹受到保护,并只能由经过身份验证的用户访问。

   为成员资格定义用户帐户。可以通过多种方式执行此操作。可以使用网站管理工具,该工具提供了一个用于创建新用户的类似向导的界面。或者,可以创建一个“新用户”ASP.NET 网页,在该网页中收集用户名和密码(及电子邮件地址(可选)),然后使用一个名为 CreateUser 的成员资格函数在成员资格系统中创建一个新用户。

   现在,您就可以使用成员资格对应用程序中的用户进行身份验证。大多数情况下,您将需要提供一个登录窗体,它可能是一个单独页或主页上的一个专用区域。可以使用 ASP.NET TextBox 控件手动创建登录窗体,也可以使用 ASP.NET 登录控件。由于您已将应用程序配置为使用 Forms 身份验证,因此在未经验证的用户请求一个受保护的页面时,ASP.NET 将自动显示登录页。

<!--[if !vml]-->Note<!--[endif]-->注意

   ASP.NET 登录控件(Login、LoginView、LoginStatus、LoginName 和 PasswordRecovery)实际上封装了提示用户输入凭据及验证成员资格系统中的凭据所需的所有逻辑。

   如果使用登录控件,它们将自动使用成员资格系统验证用户。如果已手动创建了一个登录窗体,可以提示用户输入用户名和密码,然后调用 ValidateUser 方法执行验证。在验证用户后,可以使用 Forms 身份验证保留有关用户的信息(例如,如果用户的浏览器接受 Cookie 使用加密 Cookie)。登录控件可自动执行此任务。如果已手动创建了一个登录窗体,可以调用 FormsAuthentication 类的方法来创建 Cookie 并将它写入用户的计算机。如果用户忘记了他或她的密码,则登录页可以调用成员资格函数,帮助用户找到密码或创建一个新密码。

   用户每次请求其他受保护的页面时,ASP.NET Forms 身份验证都会检查该用户是否经过身份验证,然后相应地允许该用户查看该页面或将用户重定向到登录页。默认情况下,身份验证 Cookie 在用户会话期间一直有效。

   在用户经过身份验证后,成员资格系统会提供一个包含有关当前用户的信息的对象。例如,您可以获取成员资格用户对象的属性来确定用户名、电子邮件地址、上次登录时间等。

   成员资格系统的一个重要方面是无需显式执行任何低级数据库函数就可以获取或设置用户信息。例如,通过调用成员资格 CreateUser 方法就可创建一个新用户。成员资格系统处理创建存储用户信息所需的数据库记录的细节。在调用 ValidateUser 方法检查用户凭据时,成员资格系统会执行所有数据库查询。

PetShop 4.0 中的登录控件:

WEB.CONFIG文件配置:



演练:

本演练涉及的任务包括:

配置应用程序以包括 ASP.NET 成员资格服务,以及如何定义用户。

使用登录控件获取用户凭据和向登录用户显示信息。

保护应用程序中的一页或多页,以便只有登录用户可以查看这些页。

允许新用户在网站上注册。

允许成员更改和重置其密码。

<!--[if !vml]-->Collapse 图像<!--[endif]-->先决条件

若要完成本演练,您需要:

Microsoft Visual Web Developer。

在本地计算机上安装的 Microsoft Internet 信息服务 (IIS)。

Microsoft 数据访问组件 (MDAC) 2.7 版或更高版本。如果您使用的是 Microsoft Windows XP 或 Windows Server 2003,那么您已经有了 MDAC 2.7。但是,如果使用的是 Microsoft Windows 2000,您可能需要升级您计算机上已经安装的 MDAC。有关更多信息,请参见位于 MSDN Library 上的文章“Microsoft Data Access Components (MDAC) Installation”(Microsoft 数据访问组件 (MDAC) 安装)。

对可转发电子邮件的电子邮件服务器的访问权。(服务器不需要能够接收消息)。IIS 包括默认的 SMTP 虚拟服务器,即一个适用于本演练的邮件服务器。有关配置该服务器的更多信息,请参见如何:在 IIS 中安装和配置 SMTP 虚拟服务器。如果使用的是局域网,请与网络管理员联系,获取有关访问电子邮件服务器的信息。

创建网站

如果已经在 Microsoft Visual Studio 中创建一个网站(例如,通过使用演练:在 Visual Web Developer 中创建基本网页主题),可以使用该网站并跳至本演练稍后部分的“配置成员资格”。否则,按照下面的步骤创建一个新的网站和网页。

创建本地 IIS 网站

打开 Visual Studio。

在“文件”菜单上单击“新建网站”。

出现“新建网站”对话框。

在“Visual Studio 已安装的模板”下选择“ASP.NET 网站”。

在“位置”列表框中选择“HTTP”。单击“浏览”。

出现“选择位置”对话框。

选择“本地 IIS”。

打开“本地 Web 服务器”。

选择“默认网站”。

单击网站列表上面的“创建新 Web 应用程序”图标 ( <!--[if !vml]-->“创建新的 web 应用程序”按钮<!--[endif]-->),然后将新的网站命名为 membership。

单击“打开”。

关闭“选择位置”对话框。

在“语言”框中,单击您想使用的编程语言。

您选择的编程语言将是网站的默认语言,但您可以为每个页面分别设置编程语言。

在“新建网站”对话框中单击“确定”。

Visual Web Developer 创建该网站和一个名为 Default.aspx 的新页。

<!--[if !vml]-->Collapse 图像<!--[endif]-->配置成员资格

在本演练的稍后部分中,将页面放置到受保护的子目录中。现在必须创建子目录,以便在本演练的稍后部分中可以为其配置安全性。

向网站添加新文件夹

在“解决方案资源管理器”中,右击网站的名称,再单击“新建文件夹”。

将文件夹命名为 MemberPages。

在使用 ASP.NET 成员资格之前,必须配置应用程序以启用成员资格和设置用户。可以使用网站管理工具,该工具提供了一个用于配置设置的类似向导的界面。

在本演练中,定义单个用户。

创建成员资格用户

在“网站”菜单上单击“ASP.NET 配置”。

选择“安全”选项卡,单击指向“使用安全设置向导按部就班地配置安全性”的链接,再单击“下一步”。

继续执行向导的第 2 步并选择“通过 Internet”选项。

该向导显示一页,从该页中您可以选择网站使用的身份验证方法。该选项指定应用程序将使用 Forms 身份验证,意味着用户将使用在本演练稍后部分中创建的登录页登录应用程序。

单击“下一步”。

该向导会显示一条消息,表明将使用“高级提供程序设置”存储用户信息。默认情况下,成员资格信息存储在网站上 App_Data 文件夹的 Microsoft SQL Server 速成版数据库文件中。

单击“下一步”。

该向导显示创建角色的选项。将在本演练的稍后部分中单独执行此步骤。因此,不要选择“为此网站启用角色”复选框。

单击“下一步”。

该向导显示一页,您可以在该页中创建新用户。

输入定义应用程序用户的信息。将下面的值用作准则(可以使用任何想要的值,但是请记下使用的项以便在本演练稍后部分中使用)。

“用户名” 您的名称(不要有空格),或示例名称。

“密码” 密码。需要严格的密码(该密码包括大写和小写字母以及标点,且长度至少为八个字符)。

“电子邮件” 您的个人电子邮件地址。在本演练的稍后部分中,将给您自己发送一则电子邮件,因此需要一个合法的电子邮件地址。

“安全提示问题”和“安全答案” 键入可在以后需要恢复密码时使用的问题和答案。

单击“创建用户”。

该向导显示确认页。

<!--[if !vml]-->Note<!--[endif]-->注意

使网站管理工具保持打开状态。

在本演练前面创建了一个名为“MemberPages”的文件夹。在演练的此部分中,将创建一条规则,确保只有登录用户才可以访问该文件夹中的页面。

设置 MemberPages 子目录的访问规则

在向导中单击“下一步”。

该向导显示一页,使您可以创建访问规则。

在“添加新访问规则”框中,展开网站的节点。

选择“MemberPages”,即前面创建的文件夹。

在“规则应用于”下选择“匿名用户”。

在“权限”之下选择“拒绝”。

正在创建的规则拒绝匿名用户(即未登录的用户)的访问。

单击“添加此规则”。

新的规则显示在下面的网格中。当用户请求“MemberPages”子目录中的页面时,即会检查该规则以确定是否允许该用户访问该页面。

单击“完成”。

现在已完成该向导。向导关闭并返回到网站管理工具的“安全”选项卡。

<!--[if !vml]-->Collapse 图像<!--[endif]-->配置应用程序的电子邮件设置

在本演练的这部分,应用程序需要能够发送电子邮件。若要发送消息,应用程序必须能够访问简单邮件传输协议 (SMTP) 服务器,该服务器将来自该应用程序的电子邮件转发给电子邮件收件人。

IIS 包括作为可选组件的默认 SMTP 虚拟服务器,该服务器适用于本演练。有关配置该服务器的更多信息,请参见如何:在 IIS 中安装和配置 SMTP 虚拟服务器。如果使用的是局域网,请与网络管理员联系,获取有关访问电子邮件服务器的信息。

设置或确定如何访问 SMTP 服务器之后,必须配置应用程序将电子邮件路由到该服务器。可以通过在网站的 Web.config 文件中生成项来完成上述操作,该文件包含一系列确定应用程序运行方式的设置。

配置应用程序以使用特定 SMTP 服务器

在网站管理工具中单击“应用程序”选项卡。

在 SMTP 设置下单击“配置 SMTP 电子邮件设置”。

该工具显示一页,您可以在该页中配置电子邮件。

如果使用的是您计算机上的 SMTP 虚拟服务器,则输入 localhost 作为“服务器名称”;否则,输入适当的服务器名称。

根据 SMTP 服务器的要求,包括端口号和身份验证的信息。有关如何配置这些设置的更多信息,请与管理员联系。

在“发件人”框中,键入有效的电子邮件地址。

单击“保存”,然后在确认页中单击“确定”。

网站管理工具使用所做的设置创建 Web.config 文件(如果此文件不存在)。

<!--[if !vml]-->Note<!--[endif]-->注意

在刷新该视图之前,Web.config 文件不会显示在解决方案资源管理器中。

关闭网站管理工具。

<!--[if !vml]-->Collapse 图像<!--[endif]-->用户登录

作为应用程序的一部分,需要建立用户标识,以便应用程序可以根据用户类别执行操作(如显示或隐藏信息)。若要获取用户标识,则要让用户登录。

在本演练中,将在主页上添加一个链接以使用户进入登录页,然后创建该登录页。

使用登录按钮创建主页

打开或切换到站点的 Default.aspx 页。(如果没有 Default.aspx 页,则可以添加该页或使用其他页。)

切换到“设计”视图。

键入静态文本(如“欢迎访问我们的站点”),然后在“格式”工具栏中使用“块格式”下拉列表将该文本的格式设置为标题 1。

从“工具箱”的“登录”组中,将 LoginStatus 控件拖动到页面上。

默认情况下,LoginStatus 控件呈现为链接。用户单击该控件后,应用程序将显示登录页。现在可以创建登录页。

创建登录页

在“解决方案资源管理器”中,右击 Web 应用程序并选择“添加新项”。将名为 Login.aspx 的“Web 窗体”添加到站点。

<!--[if !vml]-->Note<!--[endif]-->注意

在本演练中,该页名称必须为 Login.aspx。默认情况下,将 Forms 身份验证配置为使用具有该名称的页面。虽然在本演练中不会这样做,但是可以更改 Web.config 文件中的默认登录页(将用户重定向到的页面)。

在 Login.aspx 页上切换到“设计”视图。

从“工具箱”的“登录”组中,将 Login 控件拖动到页面上。

Login 控件是一个提示用户输入凭据并进行验证的单个控件。

显示登录错误

Login 控件包括验证以帮助用户输入正确的信息。例如,如果用户跳过密码,则验证程序控件在“密码”框旁边显示星号 (*)。通过向页面添加 ValidationSummary 控件,可以提供有关登录错误的更完整信息。

显示详细的登录错误

从“工具箱”的“验证”组中,将 ValidationSummary 控件拖动到页面上。

在 ValidationSummary 控件的“属性”窗口中,将 ValidationGroup 属性设置为 Login1(以前添加的 Login 控件的默认 ID)。

显示有关登录用户的信息

现在修改主页以根据用户是否登录来自定义显示。匿名用户将看到一条邀请他们登录的一般消息。登录用户将看到一则包含他们的登录名的欢迎消息。

自定义登录用户的显示

切换到或打开 Default.aspx 页。

从“工具箱”的“登录”组中,将 LoginView 控件拖动到页面上。

显示 LoginView 控件,并打开其 AnonymousTemplate 模板。该模板使您可以定义用户在登录前将看到的内容。

单击 LoginView 控件的编辑区域以激活编辑。

在 LoginView 控件的 AnonymousTemplate 模板的编辑区域中,键入“您尚未登录,请单击登录链接以登录。”

在“LoginView 任务”面板的“视图”列表中,单击“LoggedInTemplate”。如果没有看到“LoginView 任务”模板,请右击 LoginView 控件的标题并选择“显示智能标记”。

现在定义将向已经登录的用户显示的内容。

单击 LoginView 控件的编辑区域以激活编辑,然后键入 You are logged in. Welcome,。

从“工具箱”的“登录”组中,将 LoginName 控件拖动到模板中的文本后面。

测试登录

现在可以测试应用程序的登录能力。

测试登录

在“解决方案资源管理器”中,右击“Default.aspx”并单击“设为起始页”。

这样将配置网站,以便运行该站点时首先出现 Default.aspx 页。

按 Ctrl+F5 以运行网站。

主页 (Default.aspx) 出现在浏览器中,并显示“登录”链接和一般消息。

单击“登录”链接。

显示创建的登录页。

键入在本演练前面创建的用户登录名,然后单击“登录”。(不要输入密码。)

星号 (*) 显示在“密码”框的旁边,而且一条错误信息显示在 ValidationSummary 控件中。

键入用户名和密码,然后单击“登录”。

如果输入正确的凭据,会返回到主页。该页现在显示“注销”链接、您的用户名和为登录用户定义的欢迎消息。

关闭浏览器。

<!--[if !vml]-->Collapse 图像<!--[endif]-->限制对成员专用页面的访问

许多网站的一个典型任务是配置页面,以便只有登录用户才可以查看这些页面。在本演练前面,创建了“MemberPages”子目录,并创建了限制访问子目录中页面的规则。在演练的此节中,将页添加到受保护的子目录并测试访问规则。

创建成员专用页面

在“解决方案资源管理器”中,右击“MemberPages”文件夹,单击“添加新项”,再添加一个名为 Members.aspx 的新“Web 窗体”。

<!--[if !vml]-->Note<!--[endif]-->注意

请确保在“MemberPages”文件夹中创建该页面。

在“设计”视图中,向页面添加文本(如“各位会员,欢迎光临!”)确切的文本无关紧要,只要在浏览器中看到该页时能够识别该页就可以。

现在可以添加从主页指向成员专用页面的链接。在实际的应用程序中,可能要将指向只供成员使用的页面的链接放置到 LoginView 控件的登录模板中。这样,站点的访问者在登录之前看不到这种链接。但是在本演练中,将使该链接对所有的用户可用,以便可以看见不先登录就试图查看成员专用页面的效果。

添加指向成员专用页面的链接

切换到或打开 Default.aspx 页。

从“工具箱”的“标准”组中,将 HyperLink 控件拖动到页面上。

在 HyperLink 控件的“属性”窗口中,将 Text 属性设置为 Members page 和将 NavigateUrl 属性设置为 ~/MemberPages/Members.aspx,以指向以前创建的页面。

测试成员专用页面

可以通过以匿名用户身份和登录用户身份访问成员专用页面,来测试此页面。

测试成员专用页面

按 Ctrl+F5 以运行网站。

Default.aspx 页出现在浏览器中时,不要登录。相反,单击“Members page”链接。

您将被重定向到 Login.aspx 页,因为拒绝匿名用户访问只供成员使用的页面。

在登录页上,键入在本演练前面部分中使用的用户名和密码进行登录。

您将被重定向到 Members.aspx 页,因为登录使用的用户名已被授权访问该页。

关闭浏览器窗口。

<!--[if !vml]-->Collapse 图像<!--[endif]-->创建新用户

在演练的第一部分中,已使用网站管理工具创建用户。如果使用的是一个小的已定义的用户列表(例如为较小的团队创建用户时),则该策略非常有用。但是,很多网站允许用户自己注册。ASP.NET 包括 CreateUserWizard 控件,该控件执行的任务与您在前面使用网站管理工具执行的任务相同。

在演练的本部分中,将添加一个允许用户在网站上注册的功能。首先将创建注册页。

创建注册页

在“解决方案资源管理器”中,右击网站的名称,单击“添加新项”,再添加一个名为 Register.aspx 的新“Web 窗体”。

<!--[if !vml]-->Note<!--[endif]-->注意

请确保在网站的根目录中创建该页,而不是在“MemberPages”文件夹中。

在 Register.aspx 页上,切换到“设计”视图并在页面上键入静态文本(如“注册”)。在“格式”工具栏中,使用“块格式”下拉列表将该文本的格式设置为标题 1。

从“工具箱”的“登录”组中,将 CreateUserWizard 控件拖动到页面上。

在 CreateUserWizard 控件的“属性”窗口中,将 ContinueDestinationPageUrl 属性设置为 ~/Default.aspx。

这将配置该控件,以便创建用户之后用户单击“继续”时,控件可以返回到主页。

从“工具箱”的“标准”组中,将 HyperLink 控件拖动到页面上。在 HyperLink 控件的“属性”窗口中,将 Text 属性设置为 Home,并将 NavigateUrl 属性设置为 ~/Default.aspx。

现在可以添加一个指向主页的链接,该主页显示注册页。在本演练中,假定只向未登录的用户显示注册链接。

在主页上创建注册链接

切换到或打开 Default.aspx 页。

右击以前添加的 LoginView 控件,然后选择“显示智能标记”。在“LoginView 任务”面板中选择“视图”列表框中的“AnonymousTemplate”,以激活匿名模板中的编辑。

从“工具箱”的“标准”组中,将 HyperLink 控件拖动到匿名模板上。在 HyperLink 控件的“属性”窗口中,将 Text 属性设置为 Register,并将 NavigateUrl 属性设置为 Register.aspx。“注册”链接只向未登录用户显示。

现在可以测试注册过程。

测试注册

按 Ctrl+F5 以运行网站和显示 Default.aspx 页。

因为尚未登录,所以显示包含“注册”链接的页面。

单击“注册”链接。

显示注册页。

在文本框中,输入新的用户名、严格的密码、电子邮件地址和安全提示问题和答案。(这五项信息均为必选。)

单击“创建用户”。

显示确认消息。

单击“继续”按钮。

以登录用户的身份返回到主页。请注意,“登录”链接已更改为“注销”,而且在 Login 控件中显示的信息来自 LoggedInTemplate 属性,而不是来自 AnonymousTemplate 属性。

单击“注销”链接。

页面更改为显示适用于匿名用户的信息。

单击“登录”链接。

输入刚才创建的用户的凭据。

以新用户的身份登录。

关闭浏览器窗口。

<!--[if !vml]-->Collapse 图像<!--[endif]-->更改密码

有时候用户可能想要更改密码,但是手动执行该任务通常不太实际。因此,可以使用另一个 ASP.NET 控件使用户可以自己更改密码。若要更改密码,则用户必须知道现有密码。

在本演练中,将添加一个页面,登录用户可以在此页面更改其密码。

创建密码更改页

在“解决方案资源管理器”中,右击“MemberPages”文件夹,单击“添加新项”,再添加一个名为 ChangePassword.aspx 的新“Web 窗体”。

<!--[if !vml]-->Note<!--[endif]-->注意

请确保在“MemberPages”文件夹中创建该页面。

将该页放置到成员专用文件夹,因为只有登录用户才可以更改其密码。

在 ChangePassword.aspx 页上,切换到“设计”视图并键入静态文本(如“更改密码”)。在“格式”工具栏中,使用“块格式”下拉列表将该文本的格式设置为标题 1。

从“工具箱”的“登录”组中,将 ChangePassword 控件拖动到页面上。

在 ChangePassword 控件的“属性”窗口中,将 ContinueDestinationPageUrl 属性设置为 ~/Default.aspx

这将配置该控件,以便用户更改密码之后单击“继续”时控件可以返回到主页。

现在可以添加一个指向主页的链接,该主页显示密码更改页。将使该链接只对登录用户可用。

在主页上创建密码更改链接

切换到或打开 Default.aspx 页。

右击 LoginView 控件,然后单击“显示智能标记”。在“LoginView 任务”菜单的“视图”列表中,单击“LoggedInTemplate”。

这将把 LoginView 控件切换到向登录用户显示的内容的编辑模式。

从“工具箱”的“标准”组中,将 HyperLink 控件拖动到编辑区域。在 HyperLink 控件的“属性”窗口中,将 Text 属性设置为 Change password,将 NavigateUrl 属性设置为 ~/MemberPages/ChangePassword.aspx。

“更改密码”链接将只对登录用户显示,这与以前创建的“注册”链接相反。

现在可以测试密码更改过程。

测试密码更改

按 Ctrl+F5 以运行网站。

在 Default.aspx 页上单击“登录”链接,并以已创建的用户的身份登录。

完成之后,以登录用户的身份返回到主页。

单击“更改密码”链接。

在密码更改页,输入旧密码和新密码,然后单击“更改密码”。

单击“继续”。

在主页上单击“注销”。

单击“登录”链接。

输入新密码。

这样就使用新密码登录。

关闭浏览器窗口。

<!--[if !vml]-->Collapse 图像<!--[endif]-->恢复密码

有时用户会忘记密码。可以向网站添加密码恢复页,以便用户可以再次登录网站。可以使用两种形式恢复密码:

可以向用户发送他们选定的密码(或设置网站时为用户创建的密码)。该选项要求站点使用可还原的加密来存储密码。

可以向用户发送一个新密码,用户可以使用以前创建的密码更改页更改该密码。如果网站使用不可还原的加密方案(如哈希)存储密码,则该选项非常有用。

<!--[if !vml]-->Note<!--[endif]-->注意

对于需要高级别的安全性的站点,建议不使用电子邮件返回明文形式的密码。对于高安全性站点,建议使用加密的方式(如安全套接字层 (SSL))返回密码。

默认情况下,ASP.NET 成员资格系统通过使用哈希算法生成密码以确保其安全,这样做意味着密码不可以恢复。因此,在演练的本部分中,网站将向用户发送新密码。

<!--[if !vml]-->Note<!--[endif]-->注意

要恢复密码,网站必须可以发送电子邮件。如果不能够配置网站以发送电子邮件(如此演练前面的“配置应用程序的电子邮件设置”中所解释),则不能够向网站添加密码恢复功能。

添加密码恢复

在“解决方案资源管理器”中,右击网站的名称,单击“添加新项”,再添加一个名为 RecoverPassword.aspx 的新“Web 窗体”。

<!--[if !vml]-->Note<!--[endif]-->注意

请确保在网站的根目录中创建该页,而不是在“MemberPages”文件夹中。

在 RecoverPassword.aspx 页上,切换到“设计”视图并键入静态文本(如“将密码重置为新值”)。在“格式”工具栏中,使用“块格式”下拉列表将该文本的格式设置为标题 1。

从“工具箱”的“登录”组中,将 PasswordRecovery 控件拖动到页面上。

从“工具箱”的“标准”组中,将 HyperLink 控件拖动到页面上。在 HyperLink 控件的“属性”窗口中,将 Text 属性设置为 Home,并将 NavigateUrl 属性设置为 ~/Default.aspx。

切换到 Default.aspx 页。

右击 LoginView 控件,然后单击“显示智能标记”。在“LoginView 任务”菜单的“视图”列表中,单击“AnonymousTemplate”。

这将把 LoginView 控件切换到向未登录用户显示的内容的编辑模式。

从“工具箱”的“标准”组中,将 HyperLink 控件拖动到模板上。在 HyperLink 控件的“属性”窗口中,将 Text 属性设置为 Forgot your password?,将 NavigateUrl 属性设置为 ~/RecoverPassword.aspx。

现在可以测试密码恢复。

测试密码恢复

按 Ctrl+F5 以运行网站。

默认情况下为未登录用户,因此看见 LoginView 控件的匿名模板。

单击“是否忘记了您的密码?”链接。

出现 RecoverPassword.aspx 页。

键入用户名并单击“提交”。

显示安全提示问题并提示您键入安全答案。

键入安全答案并单击“提交”。

如果输入正确的答案,则网站将重置密码并给您发送附有新密码的电子邮件。

<!--[if !vml]-->Collapse 图像<!--[endif]-->后续步骤

本演练阐释了一个简单但是完整的创建应用程序的方案,该方案提示用户输入凭据、向登录用户显示信息、使用户可以恢复忘记的密码和限制对页面的访问。可以使用本演练中阐释的技术和控件创建更复杂的页面和应用程序。例如,您可能希望:

创建其他用户和定义角色(组)(如“managers”、“sales”或“members”),并将用户分配到不同角色。有关详细信息,请参见演练:通过角色管理网站用户。

将成员资格提供程序从默认的 Access 提供程序更改为 SQL 提供程序。将成员资格信息存储在 Access 数据库适用于小型到中型站点,但是如果站点的流量将比较大,则要将 Microsoft SQL Server 用作成员资格存储区。有关更多信息,请参见“网站管理工具提供程序”选项卡和为 SQL Server 创建应用程序服务数据库。

更改登录控件的外观。Login、PasswordRecovery 和 CreateUserWizard 控件均支持模板,这使您可以配置它们包含的文本和按钮,并更改控件的颜色、字体和其他外观特性。有关更多信息,请参见 ASP.NET 登录控件节中各主题。

创建规则,这些规则不仅限制匿名用户,而且限制特定用户或角色访问页面或文件夹。

将成员资格与配置文件属性组合,这将使您可以为每个用户存储特定于用户的设置。有关详细信息,请参见演练:用配置文件属性维护网站用户信息。

将登录控件与主控页组合。主控页使您可以定义页布局,该页布局可以用于应用程序中的所有页面。有关详细信息,请参见演练:在 Visual Web Developer 中创建和使用 ASP.NET 母版页。

添加恢复忘记的密码的功能。有关更多信息,请参见如何:使用 ASP.NET PasswordRecovery 控件实现用户密码的恢复。

其他关于介绍ASP.NET 2.0 登录控件的文章:
http://www.jaron.cn/chs_scripts/9/2006-01/20060106103904-101827.HTML  
posted @ 2007-12-03 23:07  yijiangchunxue  阅读(858)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3