ASP.NET 2.0中使用自定义provider

在ASP.NET 2.0中,新增加的membership provider功能,以及结合功能强大 的一系列注册,登陆控件,可以很方便地对用户的登陆和权限等进行管理(参见 <<ASP.NET 2.0登陆控件简介>>)。

但是,可能大家会发现,ASP.NET 2.0自带的这些登陆控件和membership的管 理功能,默认的是和sql server 2005 express搭配使用的,那么,如何改成使 用SQL Server 2000或者是其他的数据源,如access,oracle等呢?如果自己想在 应用中,另外重新写一个对登陆用户或者用户权限等管理的应用,要如何修改呢 ?在本文中,将给出在ASP.NET 2.0中使用自定义provider,以配合登陆控件来实 现一个简单的登陆过程。

为了明白ASP.NET 2.0中的provider是如何工作的,首先看下下面的结构图:

由上图可以清楚看到,在最上面的一层,是各类的登陆控件,下面一层是与 member有关的membership api。在Membership Api中,membership 类执行有关 对用户的操作,比如增加,删除用户,而MembershipUser类则存储有关用户的个 人信息,如用户名,密码,EMAIL等信息。

在Visual Studio 2005 beta 2中,默认使用的是Sql express membership provider。Provider的作用,是起到沟通Membership Api以及数据库,使得用户 并不需要关心要使用的是何种数据库,全部的操作都可以用各类相应的数据 provider来实现。

但很多时候,ASP.NET 2.0默认支持的provider是不能满足其需要的,我们可 以自己根据需要编写provider.在本文中,将介绍如何使用access数据库,建立 一个数据表,存放用户的信息。本文介绍的方法,也可以适用在其他数据库上。

 首先,我们打开Visual Studio 2005 beta 2,选用VB.NET,新建一个WEB SITE站点。在这个例子中,为简单起见,我们设置一个用户注册表单,一个登陆 的表单,新用户可以先注册,之后进行登陆。

接着,往默认的窗体中,拖放一个CreateUserWizard的控件,这是一个系统 提供的新建用户的自动控件,可以很方便地新建一个用户。为了页面美观,我们 点控件右上方的"智能感知",选择"auto format",在弹出的窗体中,再选 择"Elegant"样式,如下图所示:

当然,我们可以任意修改该控件的文字提示。这里我们为了让能使用户在注 册后能转到登陆页面,因此,设置该控件的ContinueDestinationPageUrl属性的 值为:Login.aspx,这个页面等下会编写。

接着,再拖拉一个LoginView控件到default.aspx页面中。在该控件中,可以 设置两种模版:Anonymous模版,表示在用户未登陆前,访客看到的状态; LoggedIn 模版,表示等用户成功登陆后,看到的状态(这里可以设置一些文字 显示,比如欢迎进入等,同时一般会显示用户的名字)。

在这里,我们在LoginView控件中的LoggedIn 模版中,我们输入"You are logged in",并且增加一个LoginName和一个LoginStatus控件。其中,LoginName 控件显示登陆后用户的ID,而LoginStatus控件,则当用户登陆后,会显示 logout(注销)的链接。如下两图所示:

时间: 2024-10-29 23:36:41

ASP.NET 2.0中使用自定义provider的相关文章

ASP.NET 2.0 中使用自定义缓存依赖

asp.net|缓存 在 ASP.NET 1.x 中,我们可以使用 CacheDependency 来实现缓存依赖策略,但由于这个类是 sealed 的,我们无法继承这个类来实现我们自己的策略.但是到了 ASP.NET 2.0,我们已经可以从这个类派生出自己的缓存依赖类了. 假定我们要设计一个页面,需要从博客园首页获取最新的贴子信息.为了提高性能,我们希望页面数据仅当博客园首页有更新时才重新生成,否则的话就直接从缓存中获取.如何实现? 一.设计 BlogCacheDependency 类 先分析

在ASP.NET 2.0中建立站点导航层次(1)

站点导航提供程序--ASP.NET 2.0中的站点导航提供程序暴露了应用程序中的页面的导航信息,它允许你单独地定义站点的结构,而不用考虑页面的实际物理布局.默认的站点导航提供程序是基于XML的,但是你也可以通过编写自定义的提供程序,从任何后端位置暴露这些信息. 站点导航API--站点导航API用于在应用程序的代码中访问站点导航信息,它摘录了导航信息存储的细节.你可以使用API来编程访问应用程序的导航节点. 导航控件--导航控件为页面之间的导航提供了通用的UI,例如树视图.菜单和breadcrum

理解并扩展 ASP.NET 2.0 中的站点导航系统

asp.net|导航|站点 摘要:ASP.NET 2.0 站点导航系统构建于一个功能强大.灵活的体系结构之上,设计这样的体系结构是为了使其具有可扩展性.本文探究站点提供程序的体系结构并提供一个示例提供程序,该提供程序将文件系统公开为站点导航的数据源,从而替代了标准的 Web.sitemap XML 文件. 简介 大多数 web 站点采用可视化导航的某种形式来帮助用户轻松地浏览站点,以及查找他们所需的信息和 Web 页.尽管不同站点之间的感观效果千差万别,但是通常会使用相同的基本元素 - 以导航栏

ASP.NET 2.0中保证应用程序的安全

asp.net|安全|程序 成员和角色管理器提供程序--现在ASP.NET 2.0包含了内建的成员和角色管理服务.由于这些服务都是提供程序驱动的(provider-driven),你可以轻易地变更它,或者用自定义实现来代替它. 登录控件--新的登录控件为站点的基于认证和授权的UI(例如登录窗体.创建用户窗体.密码取回.已登录用户或角色的定制UI)提供了基本模块.这些控件利用ASP.NET 2.0中的内建的成员和角色服务与站点所定义的用户和角色信息交互操作. 大多数Web应用程序的一个重要的部分是

技巧:在ASP.NET 2.0中建立站点导航层次

asp.net|导航|技巧|站点 站点导航提供程序--ASP.NET 2.0中的站点导航提供程序暴露了应用程序中的页面的导航信息,它允许你单独地定义站点的结构,而不用考虑页面的实际物理布局.默认的站点导航提供程序是基于XML的,但是你也可以通过编写自定义的提供程序,从任何后端位置暴露这些信息. 站点导航API--站点导航API用于在应用程序的代码中访问站点导航信息,它摘录了导航信息存储的细节.你可以使用API来编程访问应用程序的导航节点. 导航控件--导航控件为页面之间的导航提供了通用的UI,例

在ASP.NET 2.0中建立站点导航层次

asp.net|站点 站点导航提供程序--ASP.NET 2.0中的站点导航提供程序暴露了应用程序中的页面的导航信息,它允许你单独地定义站点的结构,而不用考虑页面的实际物理布局.默认的站点导航提供程序是基于XML的,但是你也可以通过编写自定义的提供程序,从任何后端位置暴露这些信息. 站点导航API--站点导航API用于在应用程序的代码中访问站点导航信息,它摘录了导航信息存储的细节.你可以使用API来编程访问应用程序的导航节点. 导航控件--导航控件为页面之间的导航提供了通用的UI,例如树视图.菜

ASP.NET 2.0中的健康监测系统(Health Monitoring)(1)

原文地址:http://aspnet.4guysfromrolla.com/articles/031407-1.aspx 作者:Scott Mitchell 介绍 在程序部署之前,要经历许多软件工程中定义的重要阶段,如需求分析.设计.编码和测试等. 但是,并不是说一旦程序部署并使用之后就脱离软件工程的各个阶段了. 不管一个web程序有多好的设计.多好的编码.多好的测试,它总是会有掉链子的时候. 如数据库服务器掉线,web站点比你凭经验预期的有更大的负载,或者你的web服务器本身的硬件出现问题等.

在ASP.NET 2.0中实现数据的绑定

ASP.NET的第一个版本就已经建立了一组新的数据库绑定控件.有了这些控件 的支持,数据的可视化和编辑就简单多了,其中一个最重要的控件就是DataGrid 控件.但是这个控件也有很多缺点.它为数据的排序,分页和编辑提供了一些内 置的功能,但必须手动实现. 而ASP.NET 2.0中采用了一种新的方式来解决以前版本的诸多问题, 并且提供了标准的功能.现在可以对任何数据源进行排序,分页和编辑----在大 多数情况下不需要输入任何代码.由于几乎所有的动态WEB程序都要考虑到与数据库的交互,幸运的是在A

在ASP.NET 2.0中操作数据之三:创建母版页和站点导航_自学过程

导言 通常,用户友好的个性化站点都有着一致的,站点统一的页面布局和导航体系.Asp.net 2.0引入的两个新特性给我们在统一站点的页面布局和站点导航上提供了简单而有效的工具,它们是母板页和站点导航.母板页允许开发者创建统一的站点模板和指定的可编辑区域.这样,aspx页面只需要给模板页中指定的可编辑区域提供填充内容就可以了,所有在母板页中定义的其他标记将出现在所有使用了该母板页的aspx页面中.这种模式允许开发者可以统一的管理和定义站点的页面布局,因此可以容易的得到拥有统一的视觉和感觉的页面并且