/// <summary> /// method to update user account info by user /// </summary> public int? UpdateAccountInfo(Employee emp,string pass) { int? ret = null; try { SqlCommand selectCommand = new SqlCommand(SQL_STRINGS.SP_UPDATE_ACCOUNT_INFO, con); selectCommand.Parameters.AddWithValue("@EMPLOYEE_ID", emp.EmployeeId); selectCommand.Parameters.AddWithValue("@FIRST_NAME",emp.FirstName); selectCommand.Parameters.AddWithValue("@LAST_NAME",emp.LastName); selectCommand.Parameters.AddWithValue("@EMAIL_ID", emp.Email); selectCommand.Parameters.AddWithValue("@PASS", pass); SqlParameter retParam = new SqlParameter(); retParam.ParameterName = "@RetVal"; retParam.Direction = ParameterDirection.ReturnValue; retParam.SqlDbType = SqlDbType.Int; selectCommand.Parameters.Add(retParam); selectCommand.CommandType = CommandType.StoredProcedure; con.Open(); selectCommand.ExecuteNonQuery(); con.Close(); ret = (int)retParam.Value; return ret; } catch { throw; } finally { con.Close(); } }
protected void btChangeProfSave_Click(object sender, EventArgs e) { hfTab.Value = "home"; Employee emp = new Employee(); emp.EmployeeId = Session["EmployeeId"].ToString(); emp.FirstName = tbFirstName.Text; emp.LastName = tbLastName.Text; emp.Email = tbEmailId.Text; string pass = tbChangeProfPass.Text; string hashedPassword = AppSecurity.HashSHA1(pass + Session["USER_GUID"].ToString()); DataAccessLayer dal = new DataAccessLayer(); int? ret = dal.UpdateAccountInfo(emp, hashedPassword); switch (ret) { case 1: { // update session information Session["FirstName"] = emp.FirstName; Session["LastName"] = emp.LastName; Session["EMAIL"] = emp.Email; ((Label)Master.FindControl("lbUserName")).Text = emp.FirstName + " " + emp.LastName; //show success message editAlert.Style.Add("display", "inline"); editAlert.Attributes.Add("class", "alert-success"); editAlert.InnerText = "Account Information Successfully Updated"; } break; case -1: { //invalid password editAlert.Style.Add("display", "inline"); editAlert.Attributes.Add("class", "alert-danger"); editAlert.InnerText = "Incorrect Password"; } break; case 0: { //invalid password editAlert.Style.Add("display", "inline"); editAlert.Attributes.Add("class", "alert-danger"); editAlert.InnerText = "Database Error Occured. Information could not be saved."; } break; } }
public int ValidateUserLogin(string empId, string password , ref Employee employee) { // this is the value we will return int ret = -1; using (SqlCommand cmd = new SqlCommand(SQL_STRINGS.SQL_VALIDATE_LOGIN, con)) { cmd.Parameters.AddWithValue("@EMPLOYEE_ID", empId); con.Open(); SqlDataReader dr = cmd.ExecuteReader(); while (dr.Read()) { // dr.Read() = we found user(s) with matching username! string dbEmpId = Convert.ToString(dr["EMPLOYEE_ID"]); string dbPassword = Convert.ToString(dr["PASS"]); string dbUserGuid = Convert.ToString(dr["USER_GUID"]); string dbFirstName = Convert.ToString(dr["FIRST_NAME"]); string dbLastName = Convert.ToString(dr["LAST_NAME"]); string dbEmail = Convert.ToString(dr["EMAIL_ID"]); string guid = Convert.ToString(dr["USER_GUID"]); int isAdmin = Convert.ToInt16(dr["IS_ADMIN"]); // Now we hash the UserGuid from the database with the password we wan't to check // In the same way as when we saved it to the database in the first place. (see AddUser() function) string hashedPassword = AppSecurity.HashSHA1(password + dbUserGuid); // if its correct password the result of the hash is the same as in the database if (dbPassword == hashedPassword) { // The password is correct employee = new Employee(); employee.EmployeeId = dbEmpId; employee.FirstName = dbFirstName; employee.LastName = dbLastName; employee.Email = dbEmail; employee.GUID = guid; if (isAdmin == 0) { employee.IsAdmin = false; } else if (isAdmin == 1) { employee.IsAdmin = true; } ret = 1; } } con.Close(); } // Return the user id which is 0 if we did not found a user. return ret; }