Public Class LoginForm1 Dim pMainForm As Form1 ' TODO: 插入代码,以使用提供的用户名和密码执行自定义的身份验证 ' (请参见 http://go.microsoft.com/fwlink/?LinkId=35339)。 ' 随后自定义主体可附加到当前线程的主体,如下所示: ' My.User.CurrentPrincipal = CustomPrincipal ' 其中 CustomPrincipal 是用于执行身份验证的 IPrincipal 实现。 ' 随后,My.User 将返回 CustomPrincipal 对象中封装的标识信息 ' 如用户名、显示名等 Public LoginResult As Boolean = False Dim m_LastError As String = "" Dim m_InitOver As Boolean = False Dim r_Right(CAccountManage.COL_RIGHTS.max - 1) As String '将字符串权限转换为对应的RIGHTS值 Private Sub ConvertRights(ByRef strSrc() As String, ByRef rRight() As RIGHTS) For i As Integer = 0 To CAccountManage.COL_RIGHTS.max - 1 Select Case strSrc(i) Case "只读" rRight(i) = RIGHTS.READ Case "读写" rRight(i) = RIGHTS.READ_WRITE Case Else rRight(i) = RIGHTS.NONE End Select Next End Sub ''' ''' 登录检测 ''' ''' ''' Private Function LoginCheck() As Boolean Dim m_AccountManage As New CAccountManage Dim m_UserName As String = UsernameTextBox.Text Dim m_UserPassword As String = PasswordTextBox.Text Dim r_Password As String = "" Dim r_EmployeeID As Integer = 0 '清除密码 PasswordTextBox.Text = "" If m_UserName.Length = 0 Then m_LastError = "用户名不能为空" Return False End If Dim ipaddr As String = GetIPFromNetUrl("inhaos-server.synology.me") If ipaddr.Length = 0 Then Return False SQL_ConnectionSetting(ipaddr, "w&t database", "Tony", "123") 'SQL_ConnectionSetting("10.46.213.199", "w&t database", "Tony", "123") 'SQL_ConnectionSetting("127.0.0.1", "W&T Database", "Tony", "123") m_AccountManage.AccessRight = RIGHTS.READ If m_AccountManage.QueryItem(m_UserName, r_Password, r_EmployeeID, r_Right) = ERROR_CODE.SUCCESS Then If Strings.StrComp(m_UserPassword, r_Password, Microsoft.VisualBasic.CompareMethod.Text) = 0 Then If r_Right(CAccountManage.COL_RIGHTS.登录) = "开启" Then Return True Else m_LastError = "无登录权限" End If Else m_LastError = "用户密码不正确" End If Else m_LastError = "数据库连接失败,或者用户名不正确" End If Return False End Function Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click If My.Settings.CHK_SAVEUSERNAME = True Then My.Settings.TXT_USERNAME = UsernameTextBox.Text My.Settings.Save() End If LoginResult = LoginCheck() If LoginResult = True Then Me.Hide() pMainForm = New Form1 pMainForm.Current_UserName = My.Settings.TXT_USERNAME ConvertRights(r_Right, pMainForm.Current_Rights) pMainForm.ShowDialog() If pMainForm.QuitReson = QUIT_RESON.close Then Me.Close() Else Me.Show() End If Else MsgBox(m_LastError) End If End Sub Private Sub Cancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel.Click LoginResult = False Me.Close() End Sub Private Sub LoginForm1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load If My.Settings.CHK_SAVEUSERNAME = True Then UsernameTextBox.Text = My.Settings.TXT_USERNAME End If PasswordTextBox.Focus() m_InitOver = True End Sub Private Sub chk_SaveUserName_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chk_SaveUserName.CheckedChanged My.Settings.CHK_SAVEUSERNAME = chk_SaveUserName.Checked If m_InitOver = False Then Return If My.Settings.CHK_SAVEUSERNAME = True Then My.Settings.TXT_USERNAME = UsernameTextBox.Text My.Settings.Save() End If End Sub End Class