protected void btnEditProfile_Click(object sender, EventArgs e) { string username = Session["Username"].ToString(); UserService.UserService proxy = new UserService.UserService(); UserService.User user = proxy.GetUser(username); string[] questions = user.SecretQuestions.Split(','); string[] answers = user.SecretAnswers.Split(','); txtUsername.Text = user.Username; txtFirstName.Text = user.FirstName; txtLastName.Text = user.LastName; txtHomeAddress.Text = user.HomeAddress; txtBillingAddress.Text = user.BillingAddress; txtImage.Text = user.ProfileImage; txtPhone.Text = user.Phone; txtSecurity1.Text = answers[0]; txtSecurity2.Text = answers[1]; txtSecurity3.Text = answers[2]; ddlSecurity1.SelectedValue = questions[0]; ddlSecurity2.SelectedValue = questions[1]; ddlSecurity3.SelectedValue = questions[2]; divMyProfile.Visible = false; divUpdateProfile.Visible = true; divPostContainer.Visible = false; }
protected void btnVerifyEmail_Click(object sender, EventArgs e) { string email = txtVerifyEmail.Text; if (email == "") { smlVerifyEmailHelp.InnerText = "Please enter your email address"; return; } else { smlVerifyEmailHelp.InnerText = ""; } UserService.UserService proxy = new UserService.UserService(); bool verifyEmail = proxy.ValidateEmail(email); if (verifyEmail) { smlVerifyEmailHelp.InnerText = "Email does not belong to a profile, try again"; return; } else { smlVerifyEmailHelp.InnerText = ""; } UserService.User serviceUser = proxy.GetUserByEmail(email); User recoverUser = new User(serviceUser.Username, serviceUser.FirstName, serviceUser.LastName, serviceUser.Password, serviceUser.ProfileImage, serviceUser.HomeAddress, serviceUser.BillingAddress, serviceUser.EmailAddress, serviceUser.Phone, serviceUser.SecretQuestions, serviceUser.SecretAnswers, serviceUser.Verified); int arrayIndex; int secretQuestion = recoverUser.GetRandomQuestion(out arrayIndex); lblUsernameSecretQuestion.InnerText = securityQuestions[secretQuestion]; Session["UsernameRetrieve"] = recoverUser.Username; Session["SecretAnswer"] = recoverUser.GetSecretAnswer(arrayIndex); divUsernameSecretQuestion.Visible = true; }
protected void lnkForgotPassword_Click(object sender, EventArgs e) { string username = txtLogUsername.Text; if (username == "") { smlLogUsernameHelp.InnerText = "Enter your username to retrieve password"; return; } else { smlLogUsernameHelp.InnerText = ""; } UserService.UserService proxy = new UserService.UserService(); bool verify = proxy.ValidateUsername(username); if (verify) { smlLogUsernameHelp.InnerText = "Username is not registered"; return; } UserService.User serviceUser = proxy.GetUser(username); User recoverUser = new User(serviceUser.Username, serviceUser.FirstName, serviceUser.LastName, serviceUser.Password, serviceUser.ProfileImage, serviceUser.HomeAddress, serviceUser.BillingAddress, serviceUser.EmailAddress, serviceUser.Phone, serviceUser.SecretQuestions, serviceUser.SecretAnswers, serviceUser.Verified); int arrayIndex; int secretQuestion = recoverUser.GetRandomQuestion(out arrayIndex); lblPasswordSecretQuestion.InnerText = securityQuestions[secretQuestion]; Session["UsernameRetrieve"] = username; Session["RetrievedPassword"] = recoverUser.Password; Session["SecretAnswer"] = recoverUser.GetSecretAnswer(arrayIndex); divLogin.Visible = false; divForgotPassword.Visible = true; }
protected void Page_Load(object sender, EventArgs e) { if (Session["Username"] == null && Session["Guest"] == null) { Response.Redirect("Login.aspx"); } if (Session["Guest"] != null) { Response.Redirect("Home.aspx"); } if (Session["Username"] != null) { string username = Session["Username"].ToString(); UserService.UserService proxy = new UserService.UserService(); bool verified = proxy.IsUserVerified(username); if (!verified) { Response.Redirect("Verification.aspx?mail=false"); } } if (!IsPostBack) { string username = Session["Username"].ToString(); UserService.UserService proxy = new UserService.UserService(); UserService.User proxyUser = proxy.GetUser(username); User user = new User(proxyUser.Username, proxyUser.FirstName, proxyUser.LastName, proxyUser.Password, proxyUser.ProfileImage, proxyUser.HomeAddress, proxyUser.BillingAddress, proxyUser.EmailAddress, proxyUser.Phone, proxyUser.SecretQuestions, proxyUser.SecretAnswers, proxyUser.Verified); imgProfileImage.ImageUrl = user.ProfileImage; lblUsername.InnerText = user.Username; lblFirstName.InnerText = user.FirstName; lblLastName.InnerText = user.LastName; lblEmail.InnerText = user.EmailAddress; lblPhone.InnerText = user.Phone; lblHomeAddress.InnerText = user.HomeAddress; lblBillingAddress.InnerText = user.BillingAddress; string[] questions = user.SecretQuestions.Split(','); lblSecurityQuestion1.InnerText = securityQuestions[Int32.Parse(questions[0])]; lblSecurityQuestion2.InnerText = securityQuestions[Int32.Parse(questions[1])]; lblSecurityQuestion3.InnerText = securityQuestions[Int32.Parse(questions[2])]; // Getting Posts string url = "https://localhost:44312/api/User/GetUserPosts/" + username; WebRequest request = WebRequest.Create(url); WebResponse response = request.GetResponse(); Stream stream = response.GetResponseStream(); StreamReader reader = new StreamReader(stream); String data = reader.ReadToEnd(); JavaScriptSerializer js = new JavaScriptSerializer(); List <Post> posts = js.Deserialize <List <Post> >(data); RepeaterPosts.DataSource = posts; RepeaterPosts.DataBind(); if (posts.Count == 0) { h5NoPosts.Visible = true; } stream.Close(); reader.Close(); // Getting Follow count string url2 = "https://localhost:44312/api/Follow/GetFollowCount/" + username; WebRequest request2 = WebRequest.Create(url2); WebResponse response2 = request2.GetResponse(); Stream stream2 = response2.GetResponseStream(); StreamReader reader2 = new StreamReader(stream2); String data2 = reader2.ReadToEnd(); btnFollowing.Text = "Following " + data2; stream2.Close(); reader2.Close(); // Getting Follower count string url3 = "https://localhost:44312/api/Follow/GetFollowerCount/" + username; WebRequest request3 = WebRequest.Create(url3); WebResponse response3 = request3.GetResponse(); Stream stream3 = response3.GetResponseStream(); StreamReader reader3 = new StreamReader(stream3); String data3 = reader3.ReadToEnd(); btnFollowers.Text = data3 + " Followers"; stream3.Close(); reader3.Close(); } SetupPostCardEvents(); }
protected void btnUpdateProfile_Click(object sender, EventArgs e) { string oldUsername = Session["Username"].ToString(); string username = txtUsername.Text; string firstName = txtFirstName.Text; string lastName = txtLastName.Text; string homeAddress = txtHomeAddress.Text; string billingAddress = txtBillingAddress.Text; long phoneNumber; string profileImage = txtImage.Text; string securityQuestion1 = txtSecurity1.Text; string securityQuestion2 = txtSecurity2.Text; string securityQuestion3 = txtSecurity3.Text; string secretAnswers = securityQuestion1 + "," + securityQuestion2 + "," + securityQuestion3; string secretQuestions = ddlSecurity1.SelectedValue + "," + ddlSecurity2.SelectedValue + "," + ddlSecurity3.SelectedValue; bool good = true; if (username == "") { smlUsernameHelp.InnerText = "Please enter a username"; good = false; } else { smlUsernameHelp.InnerText = ""; } if (firstName == "") { smlFirstNameHelp.InnerText = "Please enter a first name"; good = false; } else { smlFirstNameHelp.InnerText = ""; } if (lastName == "") { smlLastNameHelp.InnerText = "Please enter a last name"; good = false; } else { smlLastNameHelp.InnerText = ""; } if (homeAddress == "") { smlHomeAddressHelp.InnerText = "Please enter a home address"; good = false; } else { smlHomeAddressHelp.InnerText = ""; } if (billingAddress == "") { smlBillingAddressHelp.InnerText = "Please enter a billing address"; good = false; } else { smlBillingAddressHelp.InnerText = ""; } if (!Int64.TryParse(txtPhone.Text, out phoneNumber)) { smlPhoneHelp.InnerText = "Please enter a valid phone number"; good = false; } else { smlPhoneHelp.InnerText = ""; } if (profileImage == "") { smlImageHelp.InnerText = "Please enter a valid image URL"; good = false; } else { smlImageHelp.InnerText = ""; } if (securityQuestion1 == "") { smlQuestion1Help.InnerText = "Please enter a question response"; good = false; } else { smlQuestion1Help.InnerText = ""; } if (securityQuestion2 == "") { smlQuestion2Help.InnerText = "Please enter a question response"; good = false; } else { smlQuestion2Help.InnerText = ""; } if (securityQuestion3 == "") { smlQuestion3Help.InnerText = "Please enter a question response"; good = false; } else { smlQuestion3Help.InnerText = ""; } if (!good) { return; } UserService.UserService proxy = new UserService.UserService(); bool validateUsername = proxy.ValidateUsername(username); if (!validateUsername && username != Session["Username"].ToString()) { smlUsernameHelp.InnerText = "New username already taken, pick a new one"; return; } else { smlUsernameHelp.InnerText = ""; } UserService.User user1 = new UserService.User(); user1.Username = username; user1.FirstName = firstName; user1.LastName = lastName; user1.HomeAddress = homeAddress; user1.BillingAddress = billingAddress; user1.Phone = phoneNumber.ToString(); user1.ProfileImage = profileImage; user1.SecretQuestions = secretQuestions; user1.SecretAnswers = secretAnswers; bool updateUser = proxy.UpdateUser(oldUsername, user1); if (!updateUser) { smlUsernameHelp.InnerText = "User profile update failed, try again later"; return; } else { smlUsernameHelp.InnerText = ""; Session["Username"] = username; if (Request.Cookies["Username"] != null) { Response.Cookies["Username"].Value = username; } } // divMyProfile.Visible = true; // divUpdateProfile.Visible = false; // divPostContainer.Visible = true; // UpdatePanelProfile.Update(); Response.Redirect("UserProfile.aspx"); }
protected void btnSubmitRegister_Click(object sender, EventArgs e) { string username = txtRegUsername.Text; string password = txtRegPassword.Text; string firstName = txtRegFirstName.Text; string lastName = txtRegLastName.Text; string emailAddress = txtRegEmail.Text; string homeAddress = txtRegHomeAddress.Text; string billingAddress = txtRegBillingAddress.Text; long phoneNumber; string profileImage = txtRegImage.Text; string securityQuestion1 = txtRegSecurity1.Text; string securityQuestion2 = txtRegSecurity2.Text; string securityQuestion3 = txtRegSecurity3.Text; string secretAnswers = securityQuestion1 + "," + securityQuestion2 + "," + securityQuestion3; string secretQuestions = ddlSecurity1.SelectedValue + "," + ddlSecurity2.SelectedValue + "," + ddlSecurity3.SelectedValue; bool good = true; MD5CryptoServiceProvider hasher = new MD5CryptoServiceProvider(); string addSalt = string.Concat("ummm salty ", password); byte[] hash = hasher.ComputeHash(Encoding.Unicode.GetBytes(addSalt)); if (username == "") { smlRegUsernameHelp.InnerText = "Please enter a username"; good = false; } else { smlRegUsernameHelp.InnerText = ""; } if (password == "") { smlRegPasswordHelp.InnerText = "Please enter a password"; good = false; } else { smlRegPasswordHelp.InnerText = ""; } if (firstName == "") { smlRegFirstNameHelp.InnerText = "Please enter a first name"; good = false; } else { smlRegFirstNameHelp.InnerText = ""; } if (lastName == "") { smlRegLastNameHelp.InnerText = "Please enter a last name"; good = false; } else { smlRegLastNameHelp.InnerText = ""; } if (emailAddress == "") { smlRegEmailHelp.InnerText = "Please enter an email address"; good = false; } else { smlRegEmailHelp.InnerText = ""; } if (homeAddress == "") { smlRegHomeAddressHelp.InnerText = "Please enter a home address"; good = false; } else { smlRegHomeAddressHelp.InnerText = ""; } if (billingAddress == "") { smlRegBillingAddressHelp.InnerText = "Please enter a billing address"; good = false; } else { smlRegBillingAddressHelp.InnerText = ""; } if (!Int64.TryParse(txtRegPhone.Text, out phoneNumber)) { smlRegPhoneHelp.InnerText = "Please enter a valid phone number"; good = false; } else { smlRegPhoneHelp.InnerText = ""; } if (profileImage == "") { smlRegImageHelp.InnerText = "Please enter a valid image URL"; good = false; } else { smlRegImageHelp.InnerText = ""; } if (securityQuestion1 == "") { smlRegQuestion1Help.InnerText = "Please enter a question response"; good = false; } else { smlRegQuestion1Help.InnerText = ""; } if (securityQuestion2 == "") { smlRegQuestion2Help.InnerText = "Please enter a question response"; good = false; } else { smlRegQuestion2Help.InnerText = ""; } if (securityQuestion3 == "") { smlRegQuestion3Help.InnerText = "Please enter a question response"; good = false; } else { smlRegQuestion3Help.InnerText = ""; } if (!good) { return; } UserService.UserService proxy = new UserService.UserService(); bool validateUsername = proxy.ValidateUsername(username); if (!validateUsername) { smlRegUsernameHelp.InnerText = "Username already taken, pick a new one"; return; } else { smlRegUsernameHelp.InnerText = ""; } bool validateEmail = proxy.ValidateEmail(emailAddress); if (!validateEmail) { smlRegEmailHelp.InnerText = "Email is taken, please try again with a new one"; return; } else { smlRegEmailHelp.InnerText = ""; } try { MailAddress fromAddress = new MailAddress("*****@*****.**", "Not Twitter"); MailAddress toAddress = new MailAddress(emailAddress, "New User"); MailMessage verificationMail = new MailMessage(fromAddress.Address, toAddress.Address); verificationMail.Subject = "Not Twitter: New Account Verification"; verificationMail.Body = "Click this link to verify your new account. http://localhost:62631/Verification.aspx?uname=" + username + "&mail=true"; SmtpClient client = new SmtpClient(); client.Host = "smtp.gmail.com"; client.Port = 587; client.EnableSsl = true; client.UseDefaultCredentials = false; client.DeliveryMethod = SmtpDeliveryMethod.Network; client.Credentials = new NetworkCredential(fromAddress.Address, "ajcqwouuvihbodbc"); client.Send(verificationMail); } catch { smlRegEmailHelp.InnerText = "Invalid email address, try again"; return; } smlRegEmailHelp.InnerText = ""; UserService.User user1 = new UserService.User(); user1.Username = username; user1.FirstName = firstName; user1.LastName = lastName; user1.Password = TwitterClassLibrary.Encryption.PasswordEncryption.EncryptPassword(password); user1.EmailAddress = emailAddress; user1.HomeAddress = homeAddress; user1.BillingAddress = billingAddress; user1.Phone = phoneNumber.ToString(); user1.ProfileImage = profileImage; user1.SecretQuestions = secretQuestions; user1.SecretAnswers = secretAnswers; user1.Verified = "false"; bool addUser = proxy.AddUser(user1); if (!addUser) { smlRegUsernameHelp.InnerText = "User registration failed, try again later"; return; } else { smlRegUsernameHelp.InnerText = ""; } Session["Username"] = txtRegUsername.Text; if (chkRegCookie.Checked) { Response.Cookies["Username"].Value = txtRegUsername.Text; } Response.Redirect("Verification.aspx?mail=false"); }