文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>【原创】自定义Membership,KSPMembership发布,支持多数据库(mysql/oracle/sqlserver)

【原创】自定义Membership,KSPMembership发布,支持多数据库(mysql/oracle/sqlserver)

时间:2011-02-15  来源:老姜

经历了这么多项目之后,有的项目用的是SqlServer,有的项目用的是Oracle,还有的项目用的是Mysql,而这些MIS项目基本上都用到了Membership,所以才会想到做一个同时支持多数据库的Membership,而且这个Membership和微软官方的一样,都是标准的Membership,你原来的代码不用做任何更改就可以使用。

下面先介绍一下这个项目的基本思路:

1、        自定义的Membership需要从MembershipProvider 类继承,MembershipProvider类是一个抽象类,一般只要实现了这些类中的方法就可以完成自己的Membership,我的这个自定义的Membership叫KSPMembership。

2、        多数据库的支持是在自定义的Membership中进行分层,调用能支持多数据库的DAL即可。这里面使用了Ibatis.net来支持多数据库。

3、        微软自带的Membership数据库中有不少表,分析之后里面有些表没啥用,这里Membership相关的一共就4张表,Application(应用程序表),Role(角色表),User(用户表),UserInRole(用户对应角色表)

下面看看具体如何使用,以ASP.NET MVC2,MySql 举例:

1、  执行建表的SQL语句,将这4张表建立起来,SQL语句在附件组件包中。

2、  打开VS2008,建立一个ASP.NET MVC2 工程(MVC1 也一样),将组件包中所有DLL文件都COPY到BIN目录下,然后项目中添加引用KingSite.Purview.dll(必须引用)

3、  修改Web.Config文件,

A、 在<appSettings>节点下增加:

    <appSettings>
<add key="KSPDBType" value="oracle"/>
<add key="KSPAPPName" value="MoleCart"/>
</appSettings>

说明:KSPDBType 是表示你的数据库类型,可以是 mysql/oracle/sqlserver 中的任意一个字符串,不区分大小写;KSPAPPName 是表示你的应用程序名称。

B、 在<connectionStrings>节点下增加:

    <connectionStrings>
<add name="KSPDB" connectionString="server=127.0.0.1;database=kingsiteshop;user id=root;password=;charset=utf8"/>
</connectionStrings>

说明:这个数据库连接是为Membership准备的。注意 KSPDB 是写死的,不能改变

C、 在<system.web>节点下修改增加:

代码        <membership defaultProvider="KSPMembershipProvider"
userIsOnlineTimeWindow
="15">
<providers>
<clear />
<add
name
="KSPMembershipProvider"
type
="KingSite.Purview.Services.KSPMembershipProvider"
enablePasswordRetrieval
="false"
enablePasswordReset
="true"
requiresQuestionAndAnswer
="true"
requiresUniqueEmail
="true"
passwordFormat
="Hashed"
maxInvalidPasswordAttempts
="5"
minRequiredPasswordLength
="6"
minRequiredNonalphanumericCharacters
="0"
passwordAttemptWindow
="10"
writeExceptionsToEventLog
="true"
/>
</providers>
</membership>
<roleManager enabled="true" cacheRolesInCookie="true" cookieName=".ASPROLES"
defaultProvider
="KSPRoleProvider">
<providers>
<clear />
<add autogenerateschema="true" writeExceptionsToEventLog="true"
name
="KSPRoleProvider" type="KingSite.Purview.Services.KSPRoleProvider" />
</providers>
</roleManager>

4、  完成后在VS2008 中先编译MVC网站项目,然后选中你的ASP.NET MVC 项目,然后点击 项目菜单-》ASP.NET 配置,打开VS自带的网站配置网页。

5、  如果一切正常你就会看到下图。

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载