默认情况下,.Net网站上的MemberShip和Role功能只能用于SqlServer,如果要在其它数据库,比如Access,Oracle上使用该功能该怎么办呢?

其实MS早就为我们考虑到了,用户只要从MemberShipProvider和RoleProvider派生自己的Provider类,并实现相关的方法和属性就可以了,其实ASPX中的MemberShip功能就是这二个抽象类在SqlServer上的实现(有兴趣的朋友可以查阅一下System.Web.Security.SqlMembershipProvider)

这里只是给出一个MemberShip的演示,数据库结构如下:
用户表T_LoginUser
F_ID            用户ID
F_LoginName     登录名  
F_Password      登录密码

自定义一个MyMemberShipProvider类,这里只实现了三个方法(Initialize,ValidateUser,CreateUser)

在非SqlServer数据库上实现MemberShip和Role功能(自定义MemberShipProvider和RoleProvider)using System;
在非SqlServer数据库上实现MemberShip和Role功能(自定义MemberShipProvider和RoleProvider)
using System.Data;
在非SqlServer数据库上实现MemberShip和Role功能(自定义MemberShipProvider和RoleProvider)
using System.Data.SqlClient;
在非SqlServer数据库上实现MemberShip和Role功能(自定义MemberShipProvider和RoleProvider)
using System.Configuration;
在非SqlServer数据库上实现MemberShip和Role功能(自定义MemberShipProvider和RoleProvider)
using System.Web;
在非SqlServer数据库上实现MemberShip和Role功能(自定义MemberShipProvider和RoleProvider)
using System.Web.Security;
在非SqlServer数据库上实现MemberShip和Role功能(自定义MemberShipProvider和RoleProvider)
using System.Web.UI;
在非SqlServer数据库上实现MemberShip和Role功能(自定义MemberShipProvider和RoleProvider)
using System.Web.UI.WebControls;
在非SqlServer数据库上实现MemberShip和Role功能(自定义MemberShipProvider和RoleProvider)
using System.Web.UI.WebControls.WebParts;
在非SqlServer数据库上实现MemberShip和Role功能(自定义MemberShipProvider和RoleProvider)
using System.Web.UI.HtmlControls;
在非SqlServer数据库上实现MemberShip和Role功能(自定义MemberShipProvider和RoleProvider)


顺便也给个MyRoleProvider.cs,不过啥也没干,放了一个空架子,呵呵
在非SqlServer数据库上实现MemberShip和Role功能(自定义MemberShipProvider和RoleProvider)using System;
在非SqlServer数据库上实现MemberShip和Role功能(自定义MemberShipProvider和RoleProvider)
using System.Data;
在非SqlServer数据库上实现MemberShip和Role功能(自定义MemberShipProvider和RoleProvider)
using System.Configuration;
在非SqlServer数据库上实现MemberShip和Role功能(自定义MemberShipProvider和RoleProvider)
using System.Web;
在非SqlServer数据库上实现MemberShip和Role功能(自定义MemberShipProvider和RoleProvider)
using System.Web.Security;
在非SqlServer数据库上实现MemberShip和Role功能(自定义MemberShipProvider和RoleProvider)
using System.Web.UI;
在非SqlServer数据库上实现MemberShip和Role功能(自定义MemberShipProvider和RoleProvider)
using System.Web.UI.WebControls;
在非SqlServer数据库上实现MemberShip和Role功能(自定义MemberShipProvider和RoleProvider)
using System.Web.UI.WebControls.WebParts;
在非SqlServer数据库上实现MemberShip和Role功能(自定义MemberShipProvider和RoleProvider)
using System.Web.UI.HtmlControls;
在非SqlServer数据库上实现MemberShip和Role功能(自定义MemberShipProvider和RoleProvider)

下面是关键的Web。config配置
在非SqlServer数据库上实现MemberShip和Role功能(自定义MemberShipProvider和RoleProvider)<?xml version="1.0"?>
在非SqlServer数据库上实现MemberShip和Role功能(自定义MemberShipProvider和RoleProvider)
在非SqlServer数据库上实现MemberShip和Role功能(自定义MemberShipProvider和RoleProvider)
<configuration>
在非SqlServer数据库上实现MemberShip和Role功能(自定义MemberShipProvider和RoleProvider)    
<appSettings/>
在非SqlServer数据库上实现MemberShip和Role功能(自定义MemberShipProvider和RoleProvider)    
<connectionStrings>
在非SqlServer数据库上实现MemberShip和Role功能(自定义MemberShipProvider和RoleProvider)        
<add name="connStr" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\demo.mdf;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient"/>
在非SqlServer数据库上实现MemberShip和Role功能(自定义MemberShipProvider和RoleProvider)    
</connectionStrings>
在非SqlServer数据库上实现MemberShip和Role功能(自定义MemberShipProvider和RoleProvider)    
<system.web>
在非SqlServer数据库上实现MemberShip和Role功能(自定义MemberShipProvider和RoleProvider)        
在非SqlServer数据库上实现MemberShip和Role功能(自定义MemberShipProvider和RoleProvider)        
<compilation debug="true"/>
在非SqlServer数据库上实现MemberShip和Role功能(自定义MemberShipProvider和RoleProvider)        
在非SqlServer数据库上实现MemberShip和Role功能(自定义MemberShipProvider和RoleProvider)    
<authentication mode="Forms">
在非SqlServer数据库上实现MemberShip和Role功能(自定义MemberShipProvider和RoleProvider)      
<forms defaultUrl="~/Default.aspx" name="MemberShipProviderDemo" cookieless="UseCookies"></forms>
在非SqlServer数据库上实现MemberShip和Role功能(自定义MemberShipProvider和RoleProvider)    
</authentication>
在非SqlServer数据库上实现MemberShip和Role功能(自定义MemberShipProvider和RoleProvider)    
在非SqlServer数据库上实现MemberShip和Role功能(自定义MemberShipProvider和RoleProvider)    
在非SqlServer数据库上实现MemberShip和Role功能(自定义MemberShipProvider和RoleProvider)    
在非SqlServer数据库上实现MemberShip和Role功能(自定义MemberShipProvider和RoleProvider)        
<membership defaultProvider="MyMemberShipProvider">
在非SqlServer数据库上实现MemberShip和Role功能(自定义MemberShipProvider和RoleProvider)            
<providers>
在非SqlServer数据库上实现MemberShip和Role功能(自定义MemberShipProvider和RoleProvider)                
<add type="MyMemberShipProvider" name="MyMemberShipProvider" requiresQuestionAndAnswer="false" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\demo.mdf;Integrated Security=True;User Instance=True"/>
在非SqlServer数据库上实现MemberShip和Role功能(自定义MemberShipProvider和RoleProvider)            
</providers>
在非SqlServer数据库上实现MemberShip和Role功能(自定义MemberShipProvider和RoleProvider)        
</membership>   
在非SqlServer数据库上实现MemberShip和Role功能(自定义MemberShipProvider和RoleProvider)    
在非SqlServer数据库上实现MemberShip和Role功能(自定义MemberShipProvider和RoleProvider)    
在非SqlServer数据库上实现MemberShip和Role功能(自定义MemberShipProvider和RoleProvider)    
</system.web>
在非SqlServer数据库上实现MemberShip和Role功能(自定义MemberShipProvider和RoleProvider)
</configuration>
在非SqlServer数据库上实现MemberShip和Role功能(自定义MemberShipProvider和RoleProvider)

好了,随便建一个Default.aspx,放一个Login控件和CreateUserWizard控件就可以测试了

相关文章:

  • 2021-07-14
  • 2021-05-20
  • 2021-08-08
  • 2021-11-01
  • 2021-10-20
  • 2021-10-22
  • 2021-12-19
  • 2021-12-15
猜你喜欢
  • 2022-12-23
  • 2021-08-30
  • 2021-10-09
  • 2021-10-10
  • 2022-12-23
  • 2021-04-14
相关资源
相似解决方案