首页 - VB.NET

原创的用户登录服务器控件[vb.net]

发布时间: 2007-04-19 03:57    作者: czclk    来源: 未知    浏览:    评论

自学.net一年,第一个自己写的用户登录控件
事件CheckedResult,该事件参数e继承自EventArgs,含有用户名,密码,登录合法性(布尔值)
事件EnterEmpty,当用户名、密码文体框为空值时引发
Imports System.ComponentModel
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Data.SqlClient
")> Public Class Login
    Inherits System.Web.UI.WebControls.WebControl
    Implements IPostBackDataHandler
    Public Delegate Sub CheckedEvent(ByVal sender As Object, ByVal e As LoginEvent)
    Public Event EnterEmpty As EventHandler
    Public Event CheckedResult As CheckedEvent
    Private _user As String
    Private _pass As String
    Private _dataBase As String
    Private _dataTable As String
    Private _dataBaseUserName As String
    Private _dataBasePass As String
    Private _server As String
    Private _colUser As String
    Private _colPass As String
    Private _txtUser As String
    Private _txtPass As String
    Public Property ColUser() As String        属性--用户名字段
        Get
            Return _colUser
        End Get
        Set(ByVal value As String)
            _colUser = value
        End Set
    End Property
    Public Property ColPass() As String        属性--密码字段
        Get
            Return _colPass
        End Get
        Set(ByVal value As String)
            _colPass = value
        End Set
    End Property
    Public Property Server() As String        属性--SQL服务器名
        Get
            Return _server
        End Get
        Set(ByVal value As String)
            _server = value
        End Set
    End Property
    Public Property DataBaseUserName() As String        属性--数据库登录用户
        Get
            Return _dataBaseUserName
        End Get
        Set(ByVal value As String)
            _dataBaseUserName = value
        End Set
    End Property
    Public Property DataBasePass() As String        属性--数据库登录密码
        Get
            Return _dataBasePass
        End Get
        Set(ByVal value As String)
            _dataBasePass = value
        End Set
    End Property
    Public Property DataBase() As String        属性--数据库名
        Get
            Return _dataBase
        End Get
        Set(ByVal value As String)
            _dataBase = value
        End Set
    End Property
    Public Property DataTable() As String        属性--数据表
        Get
            Return _dataTable
        End Get
        Set(ByVal value As String)
            _dataTable = value
        End Set
    End Property
    Private ReadOnly Property ConnStr() As String        属性--构成连接字符串
        Get
            Dim _connStr As New Text.StringBuilder()
            With _connStr
                .Append("server=" & Server & ";")
                .Append("Initial catalog=" & DataBase & ";")
                .Append("User ID=" & DataBaseUserName & ";")
                .Append("PassWord=" & DataBasePass & ";")
            End With
            Return _connStr.ToString
        End Get
    End Property
    Private Property txtUser() As String        属性--获取用户名文本框值
        Get
            Return _txtUser
        End Get
        Set(ByVal value As String)
            _txtUser = value
        End Set
    End Property
    Private Property txtPass() As String        属性--获取密码文本框值
        Get
            Return _txtPass
        End Get
        Set(ByVal value As String)
            _txtPass = value
        End Set
    End Property
    Private Sub CheckInit()                     过程--验证连接数据库字符串的完整性
        If DataBase = "" Or DataTable = "" Or DataBaseUserName = "" Or DataBasePass = "" Then
            Throw New Exception("缺少相应的参数!")
        End If
    End Sub
    Protected Overrides Sub Render(ByVal writer As System.Web.UI.HtmlTextWriter) 呈现服务器控件
 Try
            CheckInit()
            writer.RenderBeginTag(HtmlTextWriterTag.Table)
            writer.RenderBeginTag(HtmlTextWriterTag.Tr)
            writer.RenderBeginTag(HtmlTextWriterTag.Td)
            writer.Write("用户名:")
            writer.RenderEndTag()
            writer.RenderBeginTag(HtmlTextWriterTag.Td)
            writer.AddAttribute(HtmlTextWriterAttribute.Type, "TextBox")
            writer.AddAttribute(HtmlTextWriterAttribute.Name, Me.UniqueID & ":User")
            writer.AddAttribute(HtmlTextWriterAttribute.Maxlength, "30")
            writer.RenderBeginTag(HtmlTextWriterTag.Input)
            writer.RenderEndTag()
            writer.RenderEndTag()
            writer.RenderEndTag()
            writer.RenderBeginTag(HtmlTextWriterTag.Tr)
            writer.RenderBeginTag(HtmlTextWriterTag.Td)
            writer.Write("密码:")
            writer.RenderEndTag()
            writer.RenderBeginTag(HtmlTextWriterTag.Td)
            writer.AddAttribute(HtmlTextWriterAttribute.Type, "Password")
            writer.AddAttribute(HtmlTextWriterAttribute.Name, Me.UniqueID & ":Pass")
            writer.AddAttribute(HtmlTextWriterAttribute.Maxlength, "30")
            writer.RenderBeginTag(HtmlTextWriterTag.Input)
            writer.RenderEndTag()
            writer.RenderEndTag()
            writer.RenderEndTag()
            writer.RenderBeginTag(HtmlTextWriterTag.Tr)
            writer.AddAttribute(HtmlTextWriterAttribute.Cols, "2")
            writer.RenderBeginTag(HtmlTextWriterTag.Td)
            writer.AddAttribute(HtmlTextWriterAttribute.Type, "submit")
            writer.AddAttribute(HtmlTextWriterAttribute.Name, Me.UniqueID)
            writer.AddAttribute(HtmlTextWriterAttribute.value, "提交")
            writer.RenderBeginTag(HtmlTextWriterTag.Input)
            writer.RenderEndTag()
            writer.RenderEndTag()
; writer.RenderEndTag()
            writer.RenderEndTag()
        Catch _error As Exception
            System.Web.HttpContext.Current.Response.Write("未能完成请求,错误信息如下:" & _error.Message)
            Exit Sub
        End Try
    End Sub
    Public Function LoadPostData(ByVal postDataKey As String, ByVal postCollection As System.Collections.Specialized.NamevalueCollection) As Boolean Implements System.Web.UI.IPostBackDataHandler.LoadPostData
        Dim _txtUserName As String = postCollection(Me.UniqueID & ":User")
        Dim _txtPass As String = postCollection(Me.UniqueID & ":Pass")
        If _txtUserName = "" Or _txtPass = "" Then
            Return True
        Else
            txtUser = _txtUserName
            txtPass = _txtPass
            OnCheckMain()
            Return False
        End If
    End Function     Public Sub RaisePostDataChangedEvent() Implements System.Web.UI.IPostBackDataHandler.RaisePostDataChangedEvent
        RaiseEvent EnterEmpty(Me, New EventArgs())
    End Sub
    Private Sub OnCheckMain()                            验证用户的合法性,引发CheckedResult事件
        Dim _connStr As String = ConnStr
        Dim _conn As New SqlConnection(_connStr)
        Dim _comm As New SqlCommand()
        Dim _dataReader As SqlDataReader
        Try
            _comm.Connection = _conn
            _comm.CommandText = "select * from " & DataTable & " where " & ColUser & "= " & txtUser & " and " & ColPass & "= " & txtPass & " "
            _comm.CommandType = CommandType.Text
            _conn.Open()
            _dataReader = _comm.ExecuteReader(CommandBehavior.CloseConnection)
            If _dataReader.Read Then
                RaiseEvent CheckedResult(Me, New LoginEvent(txtUser, txtPass, True))
            Else
                RaiseEvent CheckedResult(Me, New LoginEvent(txtUser, txtPass, False))
            End If
            _dataReader.Close()
        Catch _error As Exception
            Throw New Exception(_error.Message)
        Finally
            If _conn.State = ConnectionState.Open Then _conn.Close()
        End Try
    End Sub
End Class
---------------------------------------------------------源码2
2004.6.10
Programmer by czclk
自定义事件类LoginEvent,该事件参数e继承自EventArgs,含有用户名,密码,登录合法性(布尔值)
Public Class LoginEvent
    Inherits EventArgs
    Public Sub New()
    End Sub
    Public Sub New(ByVal user As String, ByVal pass As String, ByVal result As Boolean)
        _userName = user
        _userPass = pass
        _CheckedPass = result
    End Sub
    Private _userName As String
    Private _userPass As String
    Private _CheckedPass As Boolean
    Public Property CheckPass() As Boolean
        Get
            Return _CheckedPass
        End Get
        Set(ByVal value As Boolean)
            _CheckedPass = value
        End Set
    End Property
    Public Property UserName() As String
        Get
            Return _userName
        End Get
        Set(ByVal value As String)
            _userName = value
        End Set
    End Property
    Public Property UserPass() As String
        Get
            Return _userPass
        End Get
        Set(ByVal value As String)
            _userPass = value
        End Set
    End Property
End Class

TAG

Smile Big Smile Surprise Stick out tongue Wink Sad Tongue Tied Indifferent Crying Embarrassed Cool Angry Angel Devil [8-|] [:#] [:-*] [:^)] [<:o)] [|-)] Yes Beer Left Hug Music Star Time Snail Pizza Automobile Umbrella Computer Storm [mo] [8o|] [^o)] [+o(] [*-)] [8-)] Coffee No Drinks [Z] Right Hug Cake Broken Heart Gift Wilted Flower Movie Dog Idea Sleep Email Travel Paradise
呢称:

加粗 斜体 下划线 链接 图片 代码 邮件地址 引用 列表

最多只能输入100个字符

Tags

SQL 数据库 asp.net C# XML 控件 .NET教程 程序 事件 数据 安全 代码 Server 客户端 验证 数据库专栏 接口 文件 Oracle DataSet 函数 DataGrid 问题 .net return C#语言 JavaScript 服务 IIS 对象 语句 windows 继承 时间 web.config 设计 开发 参数 变量 解决 字符 ADO.net 环境 VB.Net语言 web 异常 工具 服务器 计算 实例 OLEDB Application VB Word WebService insert asp net 安装 记录

精华推荐

更多

精品下载

更多