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

ASP.NET 2.0中使用自定义provider

来源:http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/13
hen
  Return True
  Else
  Return False
  End If
  End Get
  End Property
  
  要注意,必须设置该属性的值,否则,在CreateUserWizard控件中,则不会显示密码提示问题和密码提示答案两个文本框。
  
  接下来,我们可以开始编写新建用户的代码了,CreateUser()方法的代码如下:
  
  Public Overrides Function CreateUser(ByVal username As String, ByVal password As String, ByVal email As String, ByVal passwordQuestion As String, ByVal passwordAnswer As String, ByVal isApproved As Boolean, ByVal providerUserKey As Object, ByRef status As System.Web.Security.MembershipCreateStatus) As System.Web.Security.MembershipUser
  Dim conn As New OleDb.OleDbConnection(connStr)
  Try
  conn.Open()
  Dim sql As String = "INSERT INTO Membership VALUES (" & _
  "@username, @password, @email, " & _
  " @passwordQuestion, @passwordAnswer )"
  Dim comm As New OleDb.OleDbCommand(sql, conn)
  comm.Parameters.AddWithValue("@username", username)
  comm.Parameters.AddWithValue("@password", password)
  comm.Parameters.AddWithValue("@email", email)
  comm.Parameters.AddWithValue("@passwordQuestion", passwordQuestion)
  comm.Parameters.AddWithValue("@passwordAnswer", passwordAnswer)
  Dim result As Integer = comm.ExecuteNonQuery()
  conn.Close()
  
  status = MembershipCreateStatus.Success
  Dim user As New MembershipUser("AccessMembershipProvider", username, Nothing, email, passwordQuestion, Nothing, True, False, Now, Nothing, Nothing, Nothing, Nothing)
  Return user
  Catch ex As Exception
  status = MembershipCreateStatus.UserRejected
  Return Nothing
  End Try
  End Function
  
  我们解读一下上面的代码,首先,我们往数据库插入了一条记录,在新增用户成功后,我们必须返回一个状态信息status(该status时在传入时以ByRef status As System.Web.Security.MembershipCreateStatus方式传入),并且我们要返回一个MembershipUser的类的实例,因此,我们以这样的方式返回其实例:
  
  Dim user As New MembershipUser("AccessMembershipProvider", username, Nothing, email, passwordQuestion, Nothing, True, False, Now, Nothing, Nothing, Nothing, Nothing)
  
  其中,使用到MembershipUser类的方法的构造函数有很多,具体的可以查看MSDN,在这里我们只用到了username,email,passwordQuestion,createdate(帐号创建日期,这里使用NOW)。
  
  而在登陆页面里,为了判断是否为合法用户登陆,则需要编写如下代码:
  
  Public Overrides Function ValidateUser( _
  ByVal username As String, _
  ByVal password As String) As Boolean
  
  Dim conn As New OleDb.OleDbConnection(connStr)
  Try
  conn.Open()
  Dim sql As String = _
  "Select * From Membership WHERE " & _
  "username=@username AND password=@password"
  Dim comm As New OleDb.OleDbCommand(sql, conn)
  comm.Parameters.AddWithValue("@username", _
  username)
  comm.Parameters.AddWithValue("@password", _
  password)
  Dim reader As OleDb.OleDbDataReader = _
  comm.ExecuteReader
  If reader.HasRows Then
  Return True
  Else
  Return False
  End If
  conn.Close()
  
  Catch ex As Exception
  Console.Write(ex.ToString)
  Return Fals

网学推荐

免费论文

原创论文

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