[ASPNET2.0]Membership类+SQLServer2005,AspNe

系统 1713 0

成员关系  Membership类总是被默认地和  SQLServerExpress联系起来使用,但你的数据库可能是其他的数据源提供的,比如:SQLServer2000/2005,Oralce,OleDB,ODBC+Access,那么你可能需要做一些额外的工作来完成数据库和应用程序之间的联系。
在MSDN中你可以很方便地查询到我们需要使用  AspNet_regsql.exe工具来完成这个配置的过程。下面就以SQLServer2005的配置过程为例,图示一下:
一、打开aspnet_regsql.exe,单独使用以下语句将启动配置向导,你也可以利用命令行参数来完成配置过程。
v2.0.50727,可以在C:/WINDOWS/Microsoft.NET/Framework/下输入dir来获取.NET的版本号
张军博客
MSDN关键字:Aspnet_regsql.exe可以查找相关参数配置的信息。
二、向导模式(在数据库中添加应用程序服务(成员资格、配置文件、角色管理、个性化设置(WebPart一类的)以及SQL Web事件提供程序)如果只需要单独添加其中的一项,请使用参数配置的方式,以下方式的默认参数为all)
 张军博客

 张军博客
按照提示选择合适的就可以了,默认选中的第一项是在原有的数据库基础上添加表和存储过程来完成配置。

 张军博客
在这里数据库选择你要添加的数据库,一般为应用程序所在的数据库。可以在下拉列表中选择。

 张军博客
点下一步开始使之前的配置生效,如果您需要修改可以点上一步返回修改后再执行下一步

 张军博客
点完成完成添加数据库的任务!

三、查看刚才选中的数据库,图中以"  aspnet_"开头的都是为了这个配置所生成的表,请不要试图添加任何的字段,因为与此搭配的还有一大堆的存储过程,如果修改了表结构,那么将会有意想不到的错误。
 张军博客

四、在应用程序中访问,我们还需要做一些配置。
(1)、打开Web.config文件,确保已经有存在connnectString配置节
(2)、在<system.web>和</system.web>之间添加以下配置:
 

张军博客  <!--  添加成员管理  -->  
 张军博客
 <  membership  defaultProvider  ="SqlProvider"  userIsOnlineTimeWindow  ="20"  >  
 张军博客
 <  providers  >  
 张军博客
 <  remove  name  ="AspNetSqlProvider"  />  
 张军博客
 <  add  connectionStringName  ="WebAppBlogConnectionString"  enablePasswordRetrieval  ="false"  
 张军博客  enablePasswordReset
 ="true"  requiresQuestionAndAnswer  ="true"  
 张军博客  passwordFormat
 ="Hashed"  applicationName  ="/"  name  ="SqlProvider"  
 张军博客  type
 ="System.Web.Security.SqlMembershipProvider"  />  
 张军博客
 </  providers  >  
 张军博客
 </  membership  >  
 张军博客  
 张军博客
 <!--  添加角色管理  -->  
 张军博客
 <  roleManager  defaultProvider  ="SqlProvider"  
 张军博客  enabled
 ="true"  
 张军博客  cacheRolesInCookie
 ="true"  
 张军博客  cookieName
 =".ASPROLES"  
 张军博客  cookieTimeout
 ="30"  
 张军博客  cookiePath
 ="/"  
 张军博客  cookieRequireSSL
 ="true"  
 张军博客  cookieSlidingExpiration
 ="true"  
 张军博客  cookieProtection
 ="All"  >  
 张军博客
 <  providers  >  
 张军博客
 <  add      
 张军博客
 name  ="SqlProvider"  
 张军博客  type
 ="System.Web.Security.SqlRoleProvider"  
 张军博客  connectionStringName
 ="WebAppBlogConnectionString"  
 张军博客  applicationName
 ="SampleApplication"  />  
 张军博客
 </  providers  >  
 张军博客
 </  roleManager  >  

其中的  connectionStringName属性值都是指连接字符串的名字:
连接字符串类似:

张军博客  <  connectionStrings  >  
 张军博客
 <  add  name  ="WebAppBlogConnectionString"  connectionString  ="DataSource=.;InitialCatalog=WebAppBlog;IntegratedSecurity=True"  
 张军博客  providerName
 ="System.Data.SqlClient"  />  
 张军博客
 </  connectionStrings  >  

缓存依赖配置节如下

张军博客      <        caching        >        
张军博客  
 <        sqlCacheDependency        enabled        ="true"        pollTime        ="10000"        >        
张军博客  
 <        databases        >        
张军博客  
 <        add        name        ="yingnetcrmin"        connectionStringName        ="WebAppBlogConnectionString"        pollTime        ="10000"        />        
张军博客  
 </        databases        >        
张军博客  
 </        sqlCacheDependency        >        
张军博客  
 </        caching        >      

只有完成了以上配置后才能再ASP.Net Web应用程序管理中找到相应的连接选项。
否则将默认连接SQLServerExpress的  AspNetSqlProvider提供程序,而以上配置中有句  <  remove  name  ="AspNetSqlProvider"  />就是为了把默认的移除。

五、  点Web项目,项目-〉ASP.NET配置,事实上这个配置web程序就是为了配置以上这段配置节所提供的。
将启动IE,在“提供程序”选项卡中选择“为每项功能选择不同的提供程序(高级)”。
 张军博客

确保成员资格提供程序和角色提供程序都是刚才你在配置节中指定的“SqlProvider”
点测试完成连接测试。
 张军博客


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论