private static string LoginCoreJSON(string UserName, string Password, string loginMode) { //List<JSONReturn> returnObj = new List<JSONReturn>(); LoginResponse returnObj = new LoginResponse(); if (new AiGrow.Business.BL_User().doesUserExist(UserName)) { string saltFromDb = new AiGrow.Business.BL_User().getUserSalt(new ML_User() { username = UserName }).Rows[0][0].ToString(); string userRole = new AiGrow.Business.BL_User().getUserRole(new ML_User() { username = UserName }); string[] encPassword = new CustomCryptography().encryptPassword(Password, saltFromDb); string password = encPassword[0]; string salt = encPassword[1]; DataTable loginTable = new AiGrow.Business.BL_User().checkLoginSecure(new ML_User() { password = password, username = UserName, salt = salt }); if (loginTable.Rows.Count == 1) { //User is active. Proceed with login. string tokenString = Encryption.createSHA1(loginMode + DateTime.Now.ToString() + UserName + Password); string userIDString = loginTable.Rows[0]["id_user"].ToString(); int loginID = new BL_Login().insert(new ML_Login() { login_mode = loginMode, login_token = tokenString, id_user = userIDString.ToInt() }); returnObj.credentials = UniversalProperties.VALID; returnObj.token = tokenString; returnObj.success = true; returnObj.loginID = loginID.ToString(); returnObj.userName = UserName; returnObj.userID = userIDString; returnObj.userRole = userRole; } else { returnObj.credentials = UniversalProperties.INVALID; returnObj.success = false; returnObj.errorMessage = UniversalProperties.userPassInvalid; returnObj.errorCode = UniversalProperties.EC_UserPassInvalid; } } else { returnObj.credentials = UniversalProperties.INVALID; returnObj.success = false; returnObj.errorMessage = UniversalProperties.noSuchUserFound; returnObj.errorCode = UniversalProperties.EC_NoSuchUserFound; } return(new JavaScriptSerializer().Serialize(returnObj)); }