会员跟踪:第 1 部分






1.86/5 (6投票s)
一个使用 Atlas 和自定义 MembershipProvider 的会员资格跟踪应用程序。
什么是 MemberVision
MemberVision 是一个 ASP.NET 会员资格跟踪示例的开始。有可能这会发展成一个多阶段的示例,这取决于我在这里收到的反馈和响应。我想以一种实用的方式利用 Atlas 控件,并理解设计自定义 Provider 的内部工作原理。因此,我提出了这个方法来“测试”控件和 Provider 模型。
MemberVision 是一个使用 Microsoft® .NET Framework 的 ASP.NET 和 Atlas 控件类构建的简单会员资格管理应用程序。目前,此示例代码只允许经过身份验证的用户查看位于本地内部网后面的 Microsoft Access 数据库中的成员列表。
演示的技术
- Microsoft Atlas
- 自定义会员资格 Provider
- 使用数据库存储用户名的表单身份验证
- 使用 Microsoft Access 数据库的 ADO.NET 数据访问
解决方案架构
数据库架构
所有共享数据都存储在 Microsoft Access 数据库中。本文档概述了 MemberVision 示例代码中使用的数据库。MemberVision 数据库架构足以支持此会员资格跟踪场景。
Microsoft Atlas
ASP.NET "Atlas" 是一套新的 Web 开发技术,它将一套广泛的客户端脚本库与 ASP.NET 2.0 的丰富、基于服务器的开发平台集成在一起。在 "MyProfile.aspx" 页面中,我使用了 CollapsiblePanel
控件。
CollapsiblePanel
是一个非常灵活的扩展器,它允许您轻松地在网页中添加可折叠的区域。此扩展器以任何 ASP.NET Panel
控件为目标。页面开发人员指定页面上的哪个控件应该作为面板的打开/关闭控制器,或者面板可以设置为在鼠标光标移入或移出它时自动展开和/或折叠。
自定义 MembershipProvider
ASP.NET 2.0 中引入的一个功能是使用“Provider 模型”来为您的 Web 应用程序提供最大的灵活性和可扩展性。使用 Provider 模型,开发人员可以轻松地以多种不同方式扩展 ASP.NET 2.0 运行时提供的功能。
例如,您可以扩展 Provider 模型,将您的网站用户的会员资格信息存储在自定义数据存储中,而不是默认的 SQL Server Express 2005 数据库。
在此示例中,我选择了 Microsoft Access。为简单起见,我只提供了允许用户登录网站的实现。
由于 SqlMembershipProvider
是各种安全控件使用的默认提供程序,因此您需要注册本文档中创建的新会员资格提供程序,以便 ASP.NET 运行时现在可以使用您的自定义提供程序。为此,请在项目中添加一个 Web.config 文件(在 Solution Explorer 中右键单击项目名称,选择 Add New Item…,选择 Web Configuration File 模板,然后单击 OK。
<system.web>
<authentication mode="Forms"/>
<membership
defaultProvider="AccessMembershipProvider" >
<providers>
<add name="AccessMembershipProvider"
type="AccessMembershipProvider"
requiresQuestionAndAnswer="true"
connectionString="Provider=Microsoft.Jet.OLEDB.4.0;
Data Source=C:\NewMembershipProvider\App_Data\dbMembers.mdb;
Persist Security Info=False" />
</providers>
</membership>
</system.web>
请注意以下几点:
- 身份验证模式应为 "
Forms
"。 - 使用
<add>
元素添加新的提供程序 "AccessMembershipProvider
"。 - 在
connectionString
属性中指定 Access 数据库的连接字符串。 - 在
<membership>
元素的defaultProvider
属性中将默认会员资格提供程序指定为 "AccessMembershipProvider
"。
通常,您可以在 <add>
元素中指定任何您喜欢的属性名称。这些属性的值将由提供程序的实现(在这种情况下是 AccessMembershipProvider.vb)检索。
为确保登录控件通过您的自定义数据库验证用户登录,您还需要实现 ValidateUser()
方法。当用户单击登录控件中的“登录”按钮时,会触发 ValidateUser()
方法。
在这里,我基本上检索与提供的用户名和密码匹配的任何记录。如果至少有一条记录,则登录成功,函数返回 "true" 值。
注释
要登录到应用程序,请使用以下凭据
- 用户名:“admin”
- 密码:“admin”