SQLite开发中的MermbershipProvider

偶然在CodeProject中发现土耳其人mascix已经重写了一套使用SQLite进行用户管理的Membership Provider,原文地址:http://www.codeproject.com/KB/aspnet/SQLiteProviders.aspx

创新互联公司网站建设服务商,为中小企业提供成都做网站、网站设计服务,网站设计,绵阳服务器托管等一站式综合服务型公司,专业打造企业形象网站,让您在众多竞争对手中脱颖而出创新互联公司

如果对SQLite本地数据库开发和数据库进行开发的过程不太了解可以参考我上一篇文章《SQLite开发准备》。

我们将mascix的代码下载到本地打开,目录中所见的ProviderSql.sql是Membership相关表的建表SQL文,我们使用SQLite Manager新建TestDatabas.sqlite数据库。当然我们也可以使用mascix在他的文章中推荐的SQLite Administrator来进行数据库的创建。

SQL文运行完,数据库中就会创建出如下六张数据表:

  • Roles
  • UsersInRoles
  • aspnet_applications
  • aspnet_profile
  • personalization
  • users

而mascix所写的代码的精华都在App_Code文件夹下的代码里,为了以后复用这套代码,我决定创建一个单独的C#工程命名为SQLiteProviders。

并将App_Code代码中的名称空间都修改为SQLiteProviders(这里删除了mascix.前缀,并不是忽视版权而是为了遵守代码规范)。

新建的工程需要引用:

  • System.Web
  • System.Data.SQLite.DLL
  • System.Web.ApplicationServices
  • System.Security

编译后创建一个新的Web工程,修改web.config代码如下:

 
 
 
  1.   
  2.   
  3.     
  4.          connectionString="Data Source=|DataDirectory|users.sqlite;Version=3;" />
  5.   
  6.   
  7.     
  8.       
  9.     
  10.     
  11.     
  12.     
  13.     
  14.       defaultProvider="SQLiteRoleProvider"
  15.       enabled="true"
  16.       cacheRolesInCookie="true"
  17.       cookieName=".ASPROLES"
  18.       cookieTimeout="30" cookiePath="/"
  19.       cookieRequireSSL="false"
  20.       cookieSlidingExpiration="true"
  21.       cookieProtection="All">
  22.       
  23.         
  24.         
  25.           name="SQLiteRoleProvider"
  26.           type="SQLiteProviders.SQLiteRoleProvider"
  27.           connectionStringName="ConnString"
  28.           applicationName="CoolSpirit"
  29.           writeExceptionsToEventLog="true"/>
  30.       
  31.     
  32.     
  33.                 userIsOnlineTimeWindow="15">
  34.       
  35.         
  36.         
  37.           name="SQLiteMembershipProvider"
  38.           type="SQLiteProviders.SqliteMembershipProvider"
  39.           connectionStringName="ConnString"
  40.           applicationName="CoolSpirit"
  41.           enablePasswordRetrieval="false"
  42.           enablePasswordReset="true"
  43.           requiresQuestionAndAnswer="false"
  44.           requiresUniqueEmail="true"
  45.           passwordFormat="Hashed"
  46.           writeExceptionsToEventLog="true"/>
  47.       
  48.     
  49.     
  50.       
  51.         
  52.         
  53.           name="SQLiteProfileProvider"
  54.           type="SQLiteProviders.SQLiteProfileProvider"
  55.           connectionStringName="ConnString"
  56.           applicationName="CoolSpirit"/>
  57.       
  58.       
  59.     
  60.     
  61.       
  62.         
  63.           
  64.           
  65.                type="SQLiteProviders.SQLitePersonalizationProvider"
  66.                connectionStringName="ConnString"
  67.                applicationName="CoolSpirit"
  68.                description="SQLite Personalization Provider"
  69.                />
  70.         
  71.       
  72.     
  73.   

添加对SQLiteProviders项目的引用,别忘了以链接文件引用SQLite.Interop.DLL(见《SQLite开发准备》一文)然后编译Web应用程序。

编译通过后,在Visual Studio的菜单“项目”-“ASP.NET配置”,即可打开ASP.NET配置站点,在安全链接的右侧,如果能看见“使您能够设置和编辑用户、角色和对站点的访问权限。 现有用户: 0 ”的字样即代表配置成功,随后可以像ASP.NET Membership Provider一样通过登陆控件等实现系统登陆、用户注册、用户和角色管理等功能了。

分享名称:SQLite开发中的MermbershipProvider
文章位置:http://www.shufengxianlan.com/qtweb/news5/230955.html

成都网站建设公司_创新互联,为您提供自适应网站网站内链移动网站建设网站维护营销型网站建设网站收录

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联