//------------------------------------------------------------------------------------------------------------------ /// <summary> /// Gets the session ID. /// </summary> /// <param name="username">The username.</param> /// <param name="password">The password.</param> /// <returns></returns> public string GetSessionID(string username, string password) { logger.Debug(EnumMethod.START); PMAUserInfo userInfo = null; foreach (PMAUserInfo tempUserInfo in configManager.PMAUsers.ListPMAUserInfo) { if (tempUserInfo.UserName == username && tempUserInfo.UserPassword == password) { userInfo = tempUserInfo; break; } } string sessionID = string.Empty; if (userInfo != null) { lock (UsersLoggedIn) { sessionID = CreateSessionID(userInfo); userInfo.LastLoginTime = DateTime.Now; configManager.UpdateUserInformation(); } } logger.Debug(EnumMethod.END); if (sessionID != null && sessionID != string.Empty) { string message = "User " + userInfo.UserName + " Has Logged into system"; PMAMailController mailController = new PMAMailController(message, AlertType.USER_ALERT, userInfo.UserName); mailController.SendMail(); } return(sessionID); }
//------------------------------------------------------------------------------------------------------------------ /// <summary> /// Creates the session ID. /// </summary> /// <param name="userInfo">The user info.</param> /// <returns></returns> private string CreateSessionID(PMAUserInfo userInfo) { logger.Debug(EnumMethod.START); string sessionID = string.Empty; lock (UsersLoggedIn) { UsersLoggedIn.Add(sessionID = GenerateUniqueId(), userInfo); } logger.Debug(EnumMethod.END); return(sessionID); }
public static PMAUserInfo GetUserInfo(string username, string password) { PMAUserInfo userInfo = (from info in PMAConfigManager.GetConfigManagerInstance.PMAUsers.ListPMAUserInfo where info.UserName == username && info.UserPassword == password select info).SingleOrDefault <PMAUserInfo>(); if (userInfo != null) { UsersLoggedIn.Add(userInfo.UserName, true); } return(userInfo); }
//--------------------------------------------------------------------------------------------------------------------------- /// <summary> /// Updates the config. /// </summary> public void UpdateConfig() { PMAUserInfo userInfo = null; configManager.PMAUsers.ListPMAUserInfo.Clear(); foreach (DataGridViewRow row in dataGridView_users.Rows) { userInfo = new PMAUserInfo(); userInfo.UserName = row.Cells["User"].Value.ToString(); userInfo.UserPassword = row.Cells["PasswordString"].Value.ToString(); userInfo.IsActionUser = bool.Parse(row.Cells["Action"].Value.ToString()); userInfo.IsServiceUser = bool.Parse(row.Cells["Services"].Value.ToString()); userInfo.IsSQLUser = bool.Parse(row.Cells["SQL"].Value.ToString()); userInfo.IsTaskManagerAdminUser = bool.Parse(row.Cells["TaskManagerAdmin"].Value.ToString()); configManager.PMAUsers.ListPMAUserInfo.Add(userInfo); } }
//------------------------------------------------------------------------------------------------------------------ /// <summary> /// Removes the expired session. /// </summary> private void RemoveExpiredSession() { logger.Debug(EnumMethod.START); PMAUserInfo userInfo = null; List <string> expiredSessions = new List <string>(); foreach (string sessionID in UsersLoggedIn.Keys) { userInfo = UsersLoggedIn[sessionID]; if ((userInfo.LastLoginTime - DateTime.Now).Hours > 6) { expiredSessions.Add(sessionID); } } foreach (string sessionID in expiredSessions) { RemoveSessionID(sessionID); } Thread.Sleep(60000); logger.Debug(EnumMethod.END); }
//------------------------------------------------------------------------------------------------------------------------ /// <summary> /// Verifies the session privileges. /// </summary> /// <param name="sessionID">The session ID.</param> /// <param name="priviledge">The priviledge.</param> /// <returns></returns> private static bool VerifySessionPrivileges(string sessionID, string priviledge) { logger.Debug(EnumMethod.START); PMAUserInfo userInfo = null; bool result = false; if ((userInfo = userManager.GetUserInfo(sessionID)) != null) { switch (priviledge) { case PRIVILEGE_ACTION: result = userInfo.IsActionUser; break; case PRIVILEGE_SERVICE: result = userInfo.IsServiceUser; break; case PRIVILEGE_SQL: result = userInfo.IsSQLUser; break; case PRIVILEGE_TASK_MANAGER_VIEW: result = true; break; case PRIVILEGE_TASK_MANAGER_ADMIN: result = userInfo.IsTaskManagerAdminUser; break; default: result = false; break; } } logger.Debug(EnumMethod.END); return(result); }