ASP.NET 2.0提供了几个非常强大的功能,包括membership, roles, personalization和profiles,它们都是基于provider的。.NET 2.0默认的provider是SQL Server Providers,而且它也是唯一的内置provider。也就是说,如果我们想使用ASP.NET 2.0提供的强大功能,必须安装SQL Server。就国内而言,大多数中小型网站和个人网站使用的都是Access 数据库,因为购买SQL数据库空间的费用是比较昂贵的。
Access providers
实际上,.NET 2.0允许我们开发自己的provider,我们甚至可以开发一个使用XML作为数据库的provider。微软为开发者提供了大量的文档,如果你安装了.net framework 2.0 SDK,只需要键入provider搜索,就能找到详细的开发文档。同时,MSDN上也有一个在线的AProvider Toolkit,上面除了开发文档,还有不少专家发布的文章。当然了,自己定制一个provider要编写大量代码,对初学者而言还是有一定难度的。
幸运的是微软公布了一个Access providers的源代码,并提供免费下载。
它是作为一个参考实例放在AProvider Toolkit里的,这个实例名为Sample Access Providers。你可以在AProvider Toolkit页面上找到它,它在右侧一栏的Downloads下,点击下载你会得到一个文件名为sampleaccessproviders.vsi的模板安装文件。
准备工作
要想在网站中使用Access providers,至少要经过三个步骤:1、创建一个Access数据库,这个数据库包含provider必须的结构。当我们使用SQL Server Providers的时候,相应的SQL Server数据库是由.NET 2.0运行时自动创建的,而Access数据库则需要我们手动创建。2、编写实现provider功能的逻辑代码。3、配置网站,告诉.NET 2.0运行时使用Access providers代替默认的SQL Server Providers。
实际上,我们只需要三个文件就足够了:一个包含特定字段和关系结构的Access数据库,一个实现具体功能的程序集,一个包含特定配置的web.config文件。而这三个文件我们都将从sampleaccessproviders.vsi中得到。
下面我们就开始解剖sampleaccessproviders.vsi,把它大卸八块,找到所需的三个文件。
首先把sampleaccessproviders.vsi的后缀改为zip并解压,得到两个文件,其中一个名为ASP.NET Access Providers.zip,把它也解压,在所得文件中就可以找到ASPNetDB.mdb和web.config这两个文件。
所得文件中还有一个名为Samples的文件夹,在这个文件夹的子文件夹AccessProviders里有七个C#源代码文件,用C#编译器(如何使用C#编译器)把它们编译成SampleAccessProviders.dll,就大功告成了。建议大家编译程序集时把程序集命名为SampleAccessProviders.dll,如果使用其它名称,要修改web.config文件中相应的配置。
现在,其它文件都可以删除了,只保留这三个文件:
ASPNetDB.mdb |
模版数据库,包含必要的字段和关系 |
SampleAccessProviders.dll |
包含必要的运算逻辑 |
web.config |
配置文件,指定SampleAccessProviders作为网站的provider
|
当然,那七个源代码文件也有保留价值,通过它们你可以了解SampleAccessProviders的原理,今后,你可以对它们加以改造,重新编译,以实现某些附加的功能,比如清除用户时清除该用户在其它数据库中的数据记录。
创建基于SampleAccessProviders的网站
打开Visual Web Developer Express Edition,新建一个网站,用我们得到的那个web.config文件替换新建项目中自动创建的那个,把ASPNetDB.mdb添加到项目的App_Data文件夹里,把SampleAccessProviders.dll 文件添加到Bin 文件夹里。此时解决方案资源管理器将显示成这样:
最后,我们测试一下新的provider。打开刚才创建并修改好的网站,从主菜单中选择 “网站|ASP.NET配置”,打开asp.net网站管理工具,选择“提供程序”选项,点击“为每项功能选择不同的提供程序(高级)”链接,可以看到,成员资格提供程序使用的是AccessMembershipProvider,而角色提供程序使用的是AccessRoleProvider:
这说明Access provider已经在网站中起作用了,并且运行正常。现在你不但可以使用Asp.net网站管理工具,而且可以在Visual Web Developer Express Edition中使用登录控件了。
附件:点击下载
1、SampleAccessProviders.dll的源代码文件
2、编译好的SampleAccessProviders.dll
3、模板数据库ASPNetDB.mdb
4、模板配置文件web.config
分享到:
相关推荐
微软官方的Access Provider Starter Kit
Fixed error on connect under Windows Vista / 7 in the Access provider 3.00.0.2 10-Sep-09 Embarcadero RAD Studio 2010 suppored DB2, Microsoft Access, Advantage Database Server, Adaptive Server ...
Exclusive access to databases in MSAccess provider is added Adaptive Server Enterprise data provider Ability to set ApplicationName in the ASE provider is added The AnsiNull option in the ASE ...
我在这里下载了三个UNIDAC,...set AccessProvider=TRUE set DB2Provider=TRUE set AdvantageProvider=TRUE set ASEProvider=TRUE set NexusDBProvider=TRUE 如果不安装就在行首加一个 REM 注意,REM后面加个空格……
RComponent.DataObject is an object ...Provider=Microsoft.Jet.OLEDB.4.0;User ID=User;Data Source=DataSource;Mode=Share Deny None Oracle Data Source=serverHost;user id=userid; password= password
要用accessprovider的话麻烦会更多一点,首先要做的就是去msdn上下载ms放出的Sample Access Providers, 当然也可以顺便看看说明页面http://msdn2.microsoft.com/en-us/asp.net/aa336558.aspx,下载回来 之后安装...
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=product.mdb"; 建立连接:OleDbConnection connection = new OleDbConnection(connectionString); 使用OleDbCommand类来执行Sql语句: OleDbCommand cmd = new ...
If you are an application developer using OLEDB, set the Provider argument of the ConnectionString property to “Microsoft.ACE.OLEDB.12.0” If you are connecting to Microsoft Office Excel data, ...
保存到Access数据库,Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\汽车信息.mdb;Persist Security Info=False" Adodc1.RecordSource = "select * from 汽车信息表" ...
使用易语言创建空白Access数据库(*.mdb),经搜索贴子并总结如下:。方法一:。打开一个对话框,然后输入要创建的数据库名称,选择好路径后保存。这是通用方法,核心就是:。创建数据库.创建 (“ADOX.Catalog”, )...
VB+Access实例:使用ADO连接Access数据库。Private Sub Form_Load() Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & ...
Oracle Data Provider for .NET 2.0 10.2.0.2.20 Oracle Database Extensions for .NET 1.x 10.2.0.2.20 — 仅用于升级 Oracle Database Extensions for .NET 2.0 10.2.0.2.20 — 仅用于升级 Oracle ...
Java加密解密字符串找不到 com.sun.crypto.provider.SunJCE() 用到jar包
Set读入access数据库程序(VB6.0源代码编写)strCnn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\text.mdb;Persist Security Info=False
采用这个引擎可以打开Provider=Microsoft.ACE.OLEDB.12.0;Data Source= 来读取access 2003,2007版本