提供程序模型的基本原理
提供程序模型不是一种应用程序特征,所以最终用户是无法看见的。提供程序模型本身并不会使一个应用程序获得更丰富的内容,也不会使其运行得更快或响应更为迅速。提供程序模型是基础功能,改进了程序的架构,使开发者和架构师理解某些系统组件外部特性即可工作。同时,由于为用户提供了添加和自定义行为及设置的钩子(hook),提供程序模型使得用户可以创建新的组件。实现策略模式并不会使程序变为允许对程序进行任意改动的开源项目。那仅仅意味着我们有一个简单、优雅且有效的模式,使客户能够对程序的特定部分进行定制。同时,这个模式的ASP.NET实现(提供程序模型)是您能够通过成为提供程序的特殊类(可以派生一个自己的类),对ASP.NET运行时环境的特定部分进行定制。
ASP.NET实现概述
ASP.NET提供程序模型的实现总体上由三个不同的部分组成:提供程序类、配置层和存储层。提供程序类是加入到现有框架的组件,以预期的方式提供相应的功能。配置层提供了用于识别和实例化实际提供程序的信息。存储层是用于数据存储的物理介质。根据特性的不同,其可以是活动目录(ActiveDirectory)、Oracle/SQLServer表或XML文件等。
ASP.NET提供程序类
1.ASP.NET提供程序基类:
①MembershipProvider:成员资格提供程序的基类,用来管理用户账户信息;
②ProfileProvider:个性化提供程序基类,用来永久存储和检索用户的配置信息;
③RoleProvider:角色提供程序的基类,用来管理用户角色;
④SessionStateStoreProviderBase:会话状态存储器提供程序的基类,这些提供程序用来把会话状态的信息保存在持久性存储介质中,或从中检索会话状态信息;
提供程序类实现客户能够理解的接口。通过这种方式,这些类为客户提供了其接口承诺的功能。客户不必知道有关接口实现的细节。这种代码不透明性使代码具有在不了解其他代码的前提下,对其他代码进行驱动的能力。在ASP.NET提供程序模型中,唯一与原有策略模式定义不同的是,使用的是基类而非接口。
ASP.NET中,提供程序类不能只实现了某一特定接口。恰恰相反的是,提供程序类必须继承于某个基类。每一种支持的提供程序类型都有一个基类。基类通过抽象方法定义提供程序的编程接口。
所有提供程序的基类都派生自名为ProviderBase的公共类。这个基类提供了一个可重写的方法(Initialize),通过这个方法,运行时环境将配置文件提供的设置传入。
提供程序模型结构图:
提供程序执行流程图:
2.SqlServerProvider对ASP.NET提供程序的支持:
①成员管理(SqlMembershipProvider类)
②角色管理(SqlProfileProvider类)
③个性化配置(SqlProfileProvider类)
④web部件个性化设置(SqlPersonalizationProvider类)
⑤web事件(SqlWebEventProvider类)
实际例子:使用Profile节存储自定义字段;
当然,在使用提供程序之前,一定要使用aspnet_regsql.exe工具,开启asp.net应用程序服务。
1.首先,在配置文件中添加提供程序节,如下:
<!--要使用到的连接字符串-->
<connectionStrings>
<add name ="SQLCON" connectionString="server=.;database=aspnetdb;user id=sa;pwd=123;"/>
</connectionStrings>
<system.web> <!--注意:在system.web节下配置-->
<!--允许匿名用户访问-->
<anonymousIdentification enabled ="true" />
<!--配置提供程序-->
<profile enabled ="true" defaultProvider ="SqlPro"><--在这里声明提供程序名字,只要跟下面Add节中的name相一致-->
<!--配置程序-->
<providers>
<add name ="SqlPro" type ="System.Web.Profile.SqlProfileProvider" connectionStringName="SQLCON"/>
</providers>
<!--属性-->
<properties>
<add name ="name" serializeAs="Xml" allowAnonymous ="true"/>
</properties>
</profile>
2.新建测试页面;其界面如图:
后台代码:
protected void btnTestProfile_Click(object sender, EventArgs e)
{
Profile.name = txtProfileName.Text;//这里就能够直接通过代码智能感知获取到自定义的字段了
}
3.点击“测试”按钮后,文本框里的字段就被添加到数据库aspnetdb里了;
分享到:
相关推荐
ASP.NET高级程序设计ASP.NET高级程序设计ASP.NET高级程序设计ASPASP.NET高级程序设计ASP.NET高级程序设ASP.NET高级程序设计ASP.NET高级程序设计ASP.NET高级程序设计ASP.NET高级程序设计ASP.NET高级程序设计ASP.NET...
本书系统介绍ASP.NET Ajax程序设计知识,共3卷。本卷从最易于理解和使用的那部分入手,介绍ASP.NET AJAX框架中能够与传统ASP.NET无缝对接的服务器端部分,包括服务器端ASP.NET AJAX Extensions与ASP.NET AJAX ...
IIS7.0 ASP.NET 应用程序生命周期ASP.NET 应用程序生命周期ASP.NET 应用程序生命周期
基于asp.net提供程序实现可配置的单用户登陆控制
ASP.NET高级程序设计(第3版)源码 ASP.NET高级程序设计(第3版)源码 ASP.NET高级程序设计(第3版)源码 ASP.NET高级程序设计(第3版)源码 ASP.NET高级程序设计(第3版)源码
一个页面登陆的.NET的程序,所用知识点:页面跳转、传值 需要注册后才能登陆
ASP.NET 2.0程序设计案例教程(课件)
ASP.net程序语法 对ASP.net程序语法有详细的介绍 是邮电大学的知识
ASP.NET Ajax程序设计 源码 书带的源码 上下2册都有
此外,《ASP.NET 4高级程序设计(第4版)》专门提供了两章的内容来教你如何用Ajax 技术制作快速响应的页面,以及如何使用微软的ASP.NETAJAX平台。另外,还专门介绍了ASP.NET4 新增的功能,如MVC 和动态数据等。 《ASP...
App .net程序设计的PPT课件 本书全面介绍ASP.NET的基础知识和网络应用程序设计方法。全书由9章组成:内容包括ASP.NET运行及编程环境、HTML语言、VB.NET语言基础、VB.NET面向对象程序设计、ASP.NET基本语法与常用内置...
ASP.NET Web程序设计(电子教案)
总共一百五十道题,涵盖基本上全部的ASP.NET知识点,选择题,正确答案都用红色标记了出来
有关asp.net程序设计的基本例子!刚学asp.net的朋友可以来看看
第一章课后习题 一、填空题(20 空,每空 2 分,共 40 分) ...6..NET Framework 公共语言运行库最重要的功能是为 ASP.NET 提供( 执行环境 )。 7.框架中的类分别放在了不同的(命名空间 )中。
asp.net版小程序微信支付接口文件,含web.config里参数配置,另二个ashx接口文件,绝对可用,另小程序和内嵌H5,授权登陆请参考sn.txt文件内容咨询解决!
asp.net 连连看程序