📄 login.aspx.vb
字号:
Imports System
Imports System.Data
Imports System.Data.SqlClient
Public Class login
Inherits System.Web.UI.Page
#Region " Web 窗体设计器生成的代码 "
'该调用是 Web 窗体设计器所必需的。
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
End Sub
Protected WithEvents login_nametxt As System.Web.UI.WebControls.TextBox
Protected WithEvents regularexpressionvalidator1 As System.Web.UI.WebControls.RequiredFieldValidator
Protected WithEvents login_passwordtxt As System.Web.UI.WebControls.TextBox
Protected WithEvents regularexpressionvalidator2 As System.Web.UI.WebControls.RequiredFieldValidator
Protected WithEvents okbtn As System.Web.UI.WebControls.Button
'注意: 以下占位符声明是 Web 窗体设计器所必需的。
'不要删除或移动它。
Private designerPlaceholderDeclaration As System.Object
Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
'CODEGEN: 此方法调用是 Web 窗体设计器所必需的
'不要使用代码编辑器修改它。
InitializeComponent()
End Sub
#End Region
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'在此处放置初始化页的用户代码
End Sub
Private Sub mybutton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles okbtn.Click
If (Page.IsValid) Then
Dim login_name As String = login_nametxt.Text
Dim login_password As String = login_passwordtxt.Text
Dim SQLString As String
Dim MyConnection As System.Data.SqlClient.SqlConnection
Dim MyCommand As System.Data.SqlClient.SqlCommand
Dim MyDataReader As System.Data.SqlClient.SqlDataReader
Dim whetherNull As Boolean = False ' 用来判断Session("login_name")是否为空
Dim whetherSelf As Boolean = False ' 用来判断是否还是本会话,即login_name是否等于Session("login_name")
'------------------两种情况下判断此用户是否在线-----------------------------------------
If Session("login_name") <> "" Then
' Session("login_name")不为空时,判断是否与登陆名相同
If login_name = Session("login_name") Then
whetherSelf = True
Else
' 当Session("login_name")不为空且与刚才会话不是同一个login_name是,才判断登陆ID是否已经在线
For Each str As String In Global.OnlinePerson
If str = login_name Then
Response.Redirect("OnlineError.aspx?error=1")
End If
Next
End If
Else
whetherNull = True
' Session("login_name")为空时,如果登陆ID已经在线则报错
For Each str As String In Global.OnlinePerson
If str = login_name Then
Response.Redirect("OnlineError.aspx?error=1")
End If
Next
End If
'----------------------与人员数据库连接来验证身份的合法性-------------------------------
MyConnection = Global.GetConnection("equipment")
SQLString = "Select * From person"
MyCommand = New SqlCommand(SQLString, MyConnection)
'打开Connection连接并执行Command命令
MyConnection.Open()
'获取数据集
MyDataReader = MyCommand.ExecuteReader()
'<----------------判断是否是本单位人员找到 temp=1-------------------->
Do While MyDataReader.Read '当有数据源中的数据满足下列条件时
'<----------------如果登陆名与密码 = MyDataReader数据源中的相应的第 2,3列时--------------->
If login_name = Trim(MyDataReader(2)) And login_password = Trim(MyDataReader(3)) Then
If whetherNull Then
Global.OnlinePerson.Add(Convert.ToString(login_name))
Else
' 如果login_name和上次会话不同,则先把上次会话人员从OnlinePerson中剔除
If Not whetherSelf Then
Global.OnlinePerson.Remove(Convert.ToString(Session("login_name")))
Global.OnlinePerson.Add(Convert.ToString(login_name))
End If
End If
' 如果没有关闭连接将可能会造成严重的后果
MyDataReader.Close()
MyConnection.Close()
' 是本单位人员时,把数据表中的相应ID创建成为 Session 变量
Session("login_name") = login_name
Response.Redirect("index.aspx")
End If
Loop
MyDataReader.Close()
MyConnection.Close()
'<-----------------如果不是单位人员就进不去-------------------->
Response.Redirect("error.aspx?error=0")
End If
End Sub
End Class
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -