protected void btnAdminLogin_Click(object sender, EventArgs e) { string AdminUsername = txtAdminUsername.Text; string AdminPassword = txtAdminPassword.Text; AdminObj AdminObject = new AdminObj(); BLLRecruiterWebsiteManager BllManager = new BLL.BLLRecruiterWebsiteManager(); AdminObject = BllManager.GetAdminLogin(AdminUsername, AdminPassword); bool validUser = PasswordHash.ValidatePassword(AdminPassword, AdminObject.PasswordHash); if (validUser == true) { Session["AdminID"] = AdminObject.Username; Response.Redirect("~/Admin.aspx"); } try { txtAdminPassword.Text = "Incorrect Password"; } catch (Exception) { throw; } }
protected void btnCreateAdmin_Click(object sender, EventArgs e) { string Username = txtUsername.Text; string Password = txtPassword.Text; string PasswordCon = txtPasswordCon.Text; string Email = txtEmail.Text; string EmailPwd = txtEmailPwd.Text; string EmailPwdConfirm = txtEmailPwdConfirm.Text; string FavouriteAnimal = txtSecretCode.Text; if (txtPassword.Text == txtPasswordCon.Text) { // hash/ salt password string saltHashReturned = PasswordHash.CreateHash(txtPassword.Text); saltHashReturned = PasswordHash.CreateHash(txtPassword.Text); int commaIndex = saltHashReturned.IndexOf(":"); string extractedString = saltHashReturned.Substring(0, commaIndex); commaIndex = saltHashReturned.IndexOf(":"); extractedString = saltHashReturned.Substring(commaIndex + 1); commaIndex = extractedString.IndexOf(":"); string salt = extractedString.Substring(0, commaIndex); commaIndex = extractedString.IndexOf(":"); extractedString = extractedString.Substring(commaIndex + 1); string hash = extractedString; if (txtEmailPwd.Text == txtEmailPwdConfirm.Text) { // encrypt email with BLL encryption class string securedPwd = Crypto.EncryptStringAES(EmailPwd, FavouriteAnimal); AdminObj adminObj = new AdminObj(); adminObj.Username = Username; adminObj.PasswordHash = salt; adminObj.PasswordSalt = saltHashReturned; /* didn't know what you wanted me to do with that email.. so both rows in the database are email and email ahas. */ // ^^thanks this is what I was looking up for adminObj.Email = Email; adminObj.EmailHash = securedPwd; adminObj.SecretCode = FavouriteAnimal; BLLRecruiterWebsiteManager SendingAdminObjectToBLL = new BLLRecruiterWebsiteManager(); SendingAdminObjectToBLL.CreateAdminUser(adminObj); Response.Redirect("~/Admin.aspx"); } } }
// create an admin user. public void CreateAdminUser( AdminObj adminObject) { DALRecruiterWebsiteManager DALWebMngr = new DALRecruiterWebsiteManager(); try { DALWebMngr.CreateAdminProfile(adminObject); } catch (Exception) { throw; } }
// creates the admin profile public void CreateAdminProfile(AdminObj adminObject) { try { using (SqlConnection Cxn = new SqlConnection(CxnString)) { using (SqlCommand Cmd = new SqlCommand("spCreateAdmin", Cxn)) { Cmd.CommandType = CommandType.StoredProcedure; SqlParameter UserParam = new SqlParameter("@Username", SqlDbType.NVarChar, 50); SqlParameter PassWordHash = new SqlParameter("@PasswordSalt", SqlDbType.NVarChar, 250); SqlParameter PassWordSalt = new SqlParameter("@PassWordHash", SqlDbType.NVarChar, 250); SqlParameter Email = new SqlParameter("@Email", SqlDbType.NVarChar, 50); SqlParameter EmailHash = new SqlParameter("@EmailEncry", SqlDbType.NVarChar, 250); SqlParameter SecretCode = new SqlParameter("@SecretCode", SqlDbType.NVarChar, 50); UserParam.Value = adminObject.Username; PassWordHash.Value = adminObject.PasswordHash; PassWordSalt.Value = adminObject.PasswordSalt; Email.Value = adminObject.Email; EmailHash.Value = adminObject.EmailHash; SecretCode.Value = adminObject.SecretCode; Cmd.Parameters.Add(UserParam); Cmd.Parameters.Add(PassWordHash); Cmd.Parameters.Add(PassWordSalt); Cmd.Parameters.Add(Email); Cmd.Parameters.Add(EmailHash); Cmd.Parameters.Add(SecretCode); Cxn.Open(); Cmd.ExecuteNonQuery(); Cxn.Close(); } } } catch (SqlException ex) { throw; } }
// log in for admin public AdminObj GetAdminLogin(string Username, string Password) { try { using (SqlConnection Cxn = new SqlConnection(CxnString)) { using (SqlCommand Cmd = new SqlCommand("spGetAdminLogin", Cxn)) { Cmd.CommandType = CommandType.StoredProcedure; SqlParameter UsernameParam = new SqlParameter("@Username", SqlDbType.NVarChar, 125); UsernameParam.Value = Username; Cmd.Parameters.Add(UsernameParam); Cxn.Open(); dr = Cmd.ExecuteReader(); AdminObj AdminObject = new AdminObj(); while (dr.Read()) { int PrimaryKey = Convert.ToInt32(dr.GetValue(Convert.ToInt32(Admin_Obj.spID))); string UsernameDB = dr.GetValue(Convert.ToInt32(Admin_Obj.spUsername)).ToString(); string PassWordHash = dr.GetValue(Convert.ToInt32(Admin_Obj.spPassWordHash)).ToString(); string PassWordSalt = dr.GetValue(Convert.ToInt32(Admin_Obj.spPassWordSalt)).ToString(); string Email = dr.GetValue(Convert.ToInt32(Admin_Obj.spEmail)).ToString(); string EmailEncrypted = dr.GetValue(Convert.ToInt32(Admin_Obj.spEmailEnc)).ToString(); string secretCode = dr.GetValue(Convert.ToInt32(Admin_Obj.spSecretCode)).ToString(); AdminObject.ID = PrimaryKey; AdminObject.Username = UsernameDB; AdminObject.PasswordSalt = PassWordSalt; AdminObject.PasswordHash = PassWordHash; AdminObject.Email = Email; AdminObject.EmailHash = EmailEncrypted; AdminObject.SecretCode = secretCode; } Cxn.Close(); dr.Close(); return AdminObject; } } } catch (SqlException ex) { throw; } }
//Populates the grid view of all the Admin User for Admin Secion public List<AdminObj> GetListOfAllAdminUser() { try { using (SqlConnection Cxn = new SqlConnection(CxnString)) { using (SqlCommand Cmd = new SqlCommand("spGetAllAdminUser", Cxn)) { Cmd.CommandType = CommandType.StoredProcedure; Cxn.Open(); dr = Cmd.ExecuteReader(); List<AdminObj> ListOfAdminObjects = new List<AdminObj>(); while (dr.Read()) { int id = Convert.ToInt32(dr.GetValue(Convert.ToInt32(Admin_Obj.spID))); string UsernameDB = dr.GetValue(Convert.ToInt32(Admin_Obj.spUsername)).ToString(); string PassWordSalt = dr.GetValue(Convert.ToInt32(Admin_Obj.spPassWordSalt)).ToString(); string PassWordHash = dr.GetValue(Convert.ToInt32(Admin_Obj.spPassWordHash)).ToString(); string Email = dr.GetValue(Convert.ToInt32(Admin_Obj.spEmail)).ToString(); string EmailEncrypted = dr.GetValue(Convert.ToInt32(Admin_Obj.spEmailEnc)).ToString(); string SecretCode = dr.GetValue(Convert.ToInt32(Admin_Obj.spSecretCode)).ToString(); AdminObj AdminObject = new AdminObj(UsernameDB, PassWordSalt, PassWordHash, Email, EmailEncrypted, SecretCode); AdminObject.ID = id; ListOfAdminObjects.Add(AdminObject); } Cxn.Close(); dr.Close(); return ListOfAdminObjects; } } } catch (SqlException ex) { throw; } }