网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 大学论文导航 设计下载 最新论文 下载排行 原创论文 论文源代码
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > ASP.net > 正文

ASP.NET 2.0中使用自定义provider

来源:http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/13
示:
  
 

  如果想修改已有的sql membership provider,则只需要创建一个类,继承SqlMembershipProvider类,并覆盖其方法就可以了,比如下面的例子:
  
  Public Class ModifiedSqlMembershipProvider
  Inherits SqlMembershipProvider
  
  Public Overrides Function CreateUser ()
  
  End Function
  
  End Class
  
  如果不想使用在Visual Studio 2005 beta 2中提供的SqlMembershipProvider,则只需要声明自己的类,并且继承MembershipProvider类就可以了。MembershipProvider类包含了与membership相关的方法和属性。
  
  在Solution Explorer中,使用"Add New item..",增加一个类,命名为AccessMembershipProvider.vb,并按系统提示,将其放到App_Code目录中去。
  
  接下来,引用相关的命名空间,并且写出程序的框架如下:
  
  Imports Microsoft.VisualBasic
  Imports System.Data
  
  Public Class AccessMembershipProvider
  Inherits MembershipProvider
  End Class
  
  为了要使用自定义的provider,必须在web.config中进行相关的配置。可以新增加一个web.config文件,写入如下的代码:
  
  <system.web>
  <authentication mode="Forms"/>
  <membership
  defaultProvider="AccessMembershipProvider" >
  <providers>
  <add name="AccessMembershipProvider"
  type="AccessMembershipProvider"
  requiresQuestionAndAnswer="true"
  connectionString="Provider=Microsoft.Jet.
  OLEDB.4.0;Data Source=C:\NewMembershipProviderApp_Data\Members.mdb;Persist Security
  Info=False" />
  </providers>
  </membership>
  </system.web>
  
  其中,要留意如下几点:
  
  必须选择验证方式为"Forms"(authentication mode="forms").
  
  通过使用<add>标签,增加一个自定义的provider,名称叫AccessMembershipProvider。
  
  其中的requiresQuestionAndAnswer属性,当其值为true时,指出在新注册时,必须填写提示问题和要回答的答案。
  
  ConnectionString,指出要进行数据库连接的连接串。
  
  DefaultProvider属性,指出系统默认使用哪一个provider,因为一个系统中可以设置多个provider.
  
  在AccessMembershipProvider.vb中,增加以下的私有成员
  
  Private connStr As String
  Private comm As New OleDb.OleDbCommand
  Private _requiresQuestionAndAnswer As Boolean
  Private _minRequiredPasswordLength As Integer
  
  并且增加Initialize()方法,代码如下
  
  Public Overrides Sub Initialize(ByVal name As String, ByVal config As System.Collections.Specialized.NameValueCollection)
  
  ’===retrives the attribute values set in
  ’web.config and assign to local variables===
  If config("requiresQuestionAndAnswer") = "true" Then _
  _requiresQuestionAndAnswer = True
  connStr = config("connectionString")
  MyBase.Initialize(name, config)
  End Sub
  
  当provider被装载时,会调用Initialize()方法。刚才在web.config文件中,使用<add>标签设置的各类属性值,都能在这个方法中读取。比如,可以通过使用config参数来读取,上面的代码中,就使用config("connectionString")来读取数据库连接字符串,并放到变量connStr变量中去。之后,再设置RequiresQuestionAndAnswer属性,如下:
  
  Public Overrides ReadOnly Property _
  RequiresQuestionAndAnswer() _
  As Boolean
  Get
  If _requiresQuestionAndAnswer = True T

网学推荐

免费论文

原创论文

设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号