/
ivan
/
ModMas
Обзор
Документация
Войти
/
ivan
/
ModMas
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
classes/auth.vb
124 строки
5 KB
i.krivokon
Initial commit
13 мар 2026, 13:49
13 мар 2026, 13:49
00d9fb6
Код
Авторство
О чём код?
Imports Microsoft.VisualBasic Imports sharedClasses.dbFunctions Imports System.Data Namespace Auth Public Class auth Public authMode As String = "SSO" Private _clientIp As String = "" Private _userId As String = "NA" Private _userName As String = "NA" Private _userDEpartment As String = "NA" Private _userGen As String = "NA" Private _registerTime As String = "NA" Private _loginKey As String = "" Private db As New SqlFunctions() Public message As String = "" Public ReadOnly Property clientIp As String Get Return _clientIp End Get End Property Public ReadOnly Property userId As String Get Return _userId End Get End Property Public ReadOnly Property userName As String Get Return _userName End Get End Property Public ReadOnly Property userDepartment As String Get Return _userDEpartment End Get End Property Public ReadOnly Property userGen As String Get Return _userGen End Get End Property Public ReadOnly Property LoginKey As String Get Return _loginKey End Get End Property Public Sub New(mode As String, clientIp As String, Optional user_id As String = "", Optional password As String = "") _clientIp = clientIp mode = mode.ToUpper Select Case mode Case "SSO" : ssoAuth() Case "FORM" : FormAuth(user_id, password) Case "SESSION" : SessionAuth() Case Else : idAuth(mode) End Select End Sub Private Sub idAuth(userid As String) Dim db As New SqlFunctions() Dim dt As DataTable = db.GetData("SELECT isnull(singleid,'') as singleid, isnull(name, '') as name, isnull(department, '') as department FROM [hr].dbo.GHR_EMP_INFO WHERE singleid = '" & userid & "' or GEN='" & userid & "'") If Not IsNothing(dt) Then If dt.Rows.Count <> 0 Then _userId = dt.Rows(0)("singleid") _userName = dt.Rows(0)("name") _userDEpartment = dt.Rows(0)("department") _registerTime = "NA" ' End If End If End Sub Public Sub ssoAuth() Dim db As New SqlFunctions() Dim dt As DataTable = db.GetData("select isnull(id,'') as singleID, isnull(Name_Eng,'') as Name_Eng, isnull(GHR_DEPT,'') as GHR_DEPT, isnull(TS,'') as TS from hr.dbo.VI_EMP_MASTER_WITH_LOGIN_IP WHERE ip= '" & _clientIp & "' ") If Not IsNothing(dt) Then If dt.Rows.Count <> 0 Then _userId = dt.Rows(0)("singleID") _userName = dt.Rows(0)("Name_Eng") _userDEpartment = dt.Rows(0)("GHR_DEPT") _registerTime = dt.Rows(0)("TS") End If End If End Sub Public Sub SessionAuth() If Not IsNothing(System.Web.HttpContext.Current.Session("UserId")) Then _userId = System.Web.HttpContext.Current.Session("UserId") _userName = System.Web.HttpContext.Current.Session("UserName") _loginKey = System.Web.HttpContext.Current.Session("loginKey") End If End Sub Public Sub FormAuth(userid As String, password As String) Dim com As New SqlClient.SqlCommand With {.CommandText = "SELECT * FROM UserModules.[user].USERS_760 WHERE user_id=@userid and password=@password"} With com.Parameters .AddWithValue("userid", userid) .AddWithValue("password", password) End With Dim dt As DataTable = db.GetData(com) If Not IsNothing(dt) Then If dt.Rows.Count > 0 Then _userId = dt.Rows(0)("USER_ID") _userName = dt.Rows(0)("User_name") _loginKey = Guid.NewGuid.ToString db.NonQuery("UPdate UserModules.[user].USERS_760 SET UserLastLogin=sysdatetime(), loginKey='" & _loginKey & "' where user_id = '" & _userId & "'") Else message = "Invalid login or password." End If Else message = "DB error. contact sysadmin" End If End Sub End Class End Namespace