244 lines
10 KiB
VB.net
244 lines
10 KiB
VB.net
Public Class Frm_Intro
|
|
Public Overrides Function AcceptChanged() As Boolean
|
|
|
|
End Function
|
|
Public Overrides Function RejectChanged() As Boolean
|
|
|
|
End Function
|
|
Public Overrides Function HasChanged() As Boolean
|
|
|
|
End Function
|
|
Private Sub Save_SEtting()
|
|
Myini.Write("user", "chkid", Me.chk_id.Checked)
|
|
Myini.Write("user", "chkpass", Me.chk_pass.Checked)
|
|
If Me.chk_id.Checked Then
|
|
Myini.Write("user", "id", Me.tb_id.Text)
|
|
Else
|
|
Myini.Write("user", "id", "")
|
|
End If
|
|
If Me.chk_pass.Checked Then
|
|
Myini.Write("user", "pass", Me.tb_pw.Text)
|
|
Else
|
|
Myini.Write("user", "pass", "")
|
|
End If
|
|
|
|
End Sub
|
|
Private Sub Frm_Login_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
|
|
Select Case e.KeyCode
|
|
Case Keys.Escape
|
|
Me.Close()
|
|
End Select
|
|
End Sub
|
|
|
|
Private Sub Frm_Login_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
|
|
'TODO: 이 코드는 데이터를 'DS.C2600' 테이블에 로드합니다. 필요한 경우 이 코드를 이동하거나 제거할 수 있습니다.
|
|
' Uselov = New Lov.ModLov(My.Settings.CS, "")
|
|
|
|
Me.lbl_ip.Text = "현재 IP:" & Prj.CUrIP & "/MAC:" & Prj.CUrMac & " 컴퓨터에서 접속하였습니다."
|
|
My.Application.DoEvents()
|
|
'//지정된 정보를 가져옵니다.
|
|
|
|
Try
|
|
Me.chk_id.Checked = CBool(Myini.Read("user", "chkid", CStr(True)))
|
|
Me.chk_pass.Checked = CBool(Myini.Read("user", "chkpass", CStr(True)))
|
|
Catch ex As Exception
|
|
Me.chk_id.Checked = False
|
|
Me.chk_pass.Checked = False
|
|
End Try
|
|
|
|
If Me.chk_id.Checked Then Me.tb_id.Text = Myini.Read("user", "id", "")
|
|
If Me.chk_pass.Checked Then Me.tb_pw.Text = Myini.Read("user", "pass", "")
|
|
|
|
End Sub
|
|
|
|
Private Function GetLevel(ByVal Dcode As String) As Short
|
|
'im DR() As DataRow = Me.DS.tbl_user.Select("uid='" & Dcode & "'")
|
|
'If DR Is Nothing Then Return 0 '//일반사원 반환
|
|
'Try
|
|
' Return CShort(DR(0)("level"))
|
|
'Catch ex As Exception
|
|
' Return 0
|
|
'End Try
|
|
End Function
|
|
|
|
Private Sub tb_pw_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles tb_pw.KeyDown
|
|
If e.KeyCode = Keys.Enter Then
|
|
'//지정된 id 와 비번으로 해당 계정이 존재하는지 확인한다.
|
|
|
|
login()
|
|
ElseIf e.KeyCode = Keys.Escape Then
|
|
Me.DialogResult = Windows.Forms.DialogResult.Cancel
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub tb_id_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles tb_id.GotFocus, tb_pw.GotFocus
|
|
CType(sender, TextBox).Focus()
|
|
CType(sender, TextBox).SelectAll()
|
|
End Sub
|
|
|
|
Private Sub tB_id_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles tb_id.KeyDown
|
|
Select Case e.KeyCode
|
|
Case Keys.Enter
|
|
Me.tb_pw.Focus()
|
|
Case Keys.Escape
|
|
Me.DialogResult = Windows.Forms.DialogResult.Cancel
|
|
End Select
|
|
End Sub
|
|
|
|
Private Sub login()
|
|
Prj.Admin = False
|
|
Dim servertime As String = Format(Now, "yyyy-MM-dd HH:mm:ss")
|
|
Dim UseriNfo As ArinLogin.ArinLOgin.User_Info
|
|
If tb_id.Text.StartsWith("guest") Then
|
|
UseriNfo = New ArinLogin.ArinLOgin.User_Info()
|
|
UseriNfo.authtype = "IP"
|
|
UseriNfo.name = tb_id.Text
|
|
ElseIf tb_id.Text.StartsWith("user") Then
|
|
UseriNfo = New ArinLogin.ArinLOgin.User_Info()
|
|
UseriNfo.authtype = "IP"
|
|
UseriNfo.name = tb_id.Text
|
|
Else
|
|
Work_msg("서버 응답을 기다리는중")
|
|
Dim L As New ArinLogin.ArinLOgin
|
|
|
|
servertime = L.Get_ServerTime()
|
|
pLog.Add(String.Format("Login Try ID = {0}", tb_id.Text))
|
|
UseriNfo = L.Check_user("eco_user", Me.tb_id.Text, Me.tb_pw.Text)
|
|
Work_msg("")
|
|
If UseriNfo.name = "" Then
|
|
MsgBox("존재하지 않는계정이거나 비밀번호오류입니다", MsgBoxStyle.Critical, "확인")
|
|
Return
|
|
End If
|
|
End If
|
|
|
|
Dim authtype As String = UseriNfo.authtype
|
|
If authtype.StartsWith("BOTH_C_") Then authtype = "BOTH"
|
|
|
|
|
|
Select Case authtype
|
|
Case "IP"
|
|
If Me.tb_id.Text.ToLower() <> "guest" AndAlso Not Me.tb_id.Text.ToLower().StartsWith("user") Then
|
|
If Prj.CUrIP.ToUpper <> UseriNfo.authip.ToUpper AndAlso UseriNfo.authip <> "0.0.0.0" Then
|
|
MsgBox("로그인사용자와 현재컴퓨터의 IP가 일치하지않습니다", MsgBoxStyle.Critical, "확인")
|
|
Return
|
|
End If
|
|
Else
|
|
Try
|
|
Dim userPass As String
|
|
Dim userMAC As String
|
|
Dim userIP As String
|
|
|
|
|
|
If Me.tb_id.Text.ToLower().StartsWith("user") Then
|
|
userMAC = ("USER" & Prj.CUrMac.Substring(4)).GetHashCode
|
|
Else
|
|
userMAC = Prj.CUrMac.GetHashCode
|
|
End If
|
|
|
|
userIP = Prj.CUrIP.GetHashCode
|
|
userPass = userIP + userMAC
|
|
userPass = userPass.GetHashCode
|
|
If CLng(userPass) < 0 Then
|
|
userPass = (CLng(userPass) * -1).ToString
|
|
End If
|
|
If tb_id.Text.ToLower().StartsWith("user") AndAlso Me.tb_pw.Text <> userPass Then
|
|
MsgBox("존재하지 않는계정이거나 비밀번호오류입니다", MsgBoxStyle.Critical, "확인")
|
|
End
|
|
End If
|
|
Catch ex As Exception
|
|
MsgBox("존재하지 않는계정이거나 비밀번호오류입니다", MsgBoxStyle.Critical, "확인")
|
|
End
|
|
End Try
|
|
End If
|
|
Case "MAC" '//MAC인증일경우 현재MAC과 비교한다.
|
|
If Prj.CUrMac.ToUpper <> UseriNfo.authmac.ToUpper Then
|
|
MsgBox("로그인사용자와 현재컴퓨터의 MAC이 일치하지않습니다", MsgBoxStyle.Critical, "확인")
|
|
Return
|
|
End If
|
|
Case "BOTH", "BOTH1", "BOTH2" '// BOTH1, BOTH2 는 기존 일반사용자와 다른 권한 부여하기 위해 만듬. BOTH1은 가져오기 가능, BOTH2는 가져오기 + 프로파일 수정가능 2010.11.22 --- BOTH0 은 일반유저로 설정
|
|
If Prj.CUrIP.ToUpper <> UseriNfo.authip.ToUpper OrElse Prj.CUrMac.ToUpper <> UseriNfo.authmac.ToUpper Then
|
|
MsgBox("로그인사용자의 IP 또는 MAC이 일치하지 않습니다", MsgBoxStyle.Critical, "확인")
|
|
Return
|
|
End If
|
|
Case "ADMIN"
|
|
Prj.Admin = True
|
|
Case "BOTH0"
|
|
|
|
Case Else
|
|
Return
|
|
End Select
|
|
|
|
pLog.Add(String.Format("Login OK ID={0}", Me.tb_id.Text))
|
|
|
|
|
|
|
|
Prj.LoginTime = servertime '/ Format(Now, "yyyy-MM-dd HH:mi:ss")
|
|
Prj.UserId = Me.tb_id.Text
|
|
Prj.UserPass = Me.tb_pw.Text
|
|
If Me.tb_id.Text.ToLower() = "guest" Then
|
|
Prj.UserAuthType = "BOTH0"
|
|
Prj.UserAuthType_Real = "BOTH0"
|
|
ElseIf Me.tb_id.Text.ToLower().StartsWith("user") Then
|
|
Prj.UserAuthType = "BOTH"
|
|
Prj.UserAuthType_Real = "BOTH"
|
|
Else
|
|
Prj.UserAuthType = UseriNfo.authtype
|
|
If Prj.UserAuthType.StartsWith("BOTH_C_") Then
|
|
Prj.UserAuthType = "BOTH"
|
|
'//server time
|
|
Dim stime As String = Prj.LoginTime.Substring(0, 7).Replace("-", "").Trim()
|
|
Dim ctime As String = UseriNfo.authtype.Substring(7).Trim()
|
|
If String.Compare(ctime, stime) < 0 Then
|
|
MsgBox("사용기간이 경과되어 로그인이 불가합니다", MsgBoxStyle.Critical, "확인")
|
|
Return
|
|
End If
|
|
End If
|
|
Prj.UserAuthType_Real = UseriNfo.authtype
|
|
End If
|
|
|
|
Save_SEtting()
|
|
|
|
Me.DialogResult = Windows.Forms.DialogResult.OK
|
|
End Sub
|
|
'Private Sub LinkLabel1_LinkClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles LinkLabel1.LinkClicked
|
|
' Dim LF As New Frm_user("")
|
|
' If LF.ShowDialog = Windows.Forms.DialogResult.OK Then
|
|
' Me.tB_id.Text = LF.UID
|
|
' Me.tb_pw.Text = ""
|
|
' Me.tb_pw.Focus()
|
|
' Else
|
|
' Me.tB_id.Text = ""
|
|
' Me.tb_pw.Text = ""
|
|
' Me.tB_id.Focus()
|
|
' End If
|
|
'End Sub
|
|
Private Sub Frm_Intro_SizeChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.SizeChanged
|
|
|
|
End Sub
|
|
|
|
|
|
Private Sub lbl_ip_LinkClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs)
|
|
Dim Str As New System.Text.StringBuilder
|
|
Str.AppendLine("### 다음내용을 관리자에게 메일로 보내주세요 ###")
|
|
Str.AppendLine("ip : " & Prj.CUrIP)
|
|
Str.AppendLine("mac : " & Prj.CUrMac)
|
|
'Str.AppendLine("lg : " & Prj.LGVersino)
|
|
'Str.AppendLine("ui : " & Prj.UIVersion)
|
|
My.Computer.FileSystem.WriteAllText("c:\address.txt", Str.ToString, False)
|
|
Shell("notepad c:\address.txt", AppWinStyle.NormalFocus)
|
|
End Sub
|
|
|
|
|
|
|
|
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
|
|
login()
|
|
End Sub
|
|
|
|
Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
|
|
End
|
|
End Sub
|
|
|
|
Private Sub btn_end_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
|
|
End
|
|
End Sub
|
|
End Class |