示例#1
0
        public ActionResult ForgotPassword(string EmailAddress)
        {
            // verify Email Address
            // If Valid then generate Reset Password Link
            //Send Password Reset Email
            string message = "";
            bool   status  = false;


            using (UserDatabaseEntities dc = new UserDatabaseEntities())
            {
                var account = dc.Users.Where(a => a.Email_Address == EmailAddress).FirstOrDefault(); // Searches if there is an account already
                if (account != null)
                {
                    //send email for password reset
                    string resetCode = Guid.NewGuid().ToString();
                    SendVerificationLinkEmail(account.Email_Address, resetCode, "ResetPassword");
                    account.ResetPasswordCode = resetCode;
                    //Line added to avoid confirm password not matching issue, as the confirm password property that was added
                    // to the model class.
                    dc.Configuration.ValidateOnSaveEnabled = false;
                    dc.SaveChanges();
                    message = "The Reset Password Link has been sent to your Email Address.";
                }
                else
                {
                    message = "That Email Address has not been registered. Please try again or register for an Account";
                }
            }
            ViewBag.Message = message;
            return(View());
        }
示例#2
0
        //// GET: Profile/Create
        //public ActionResult Create()
        //{
        //    return View();
        //}

        //// POST: Profile/Create
        //[HttpPost]
        //public ActionResult Create(User user)
        //{
        //    try
        //    {
        //        // TODO: Add insert logic here
        //        using (UserDatabaseEntities dc = new UserDatabaseEntities())
        //        {
        //            dc.Users.Add(user);
        //            dc.SaveChanges();
        //        }

        //            return RedirectToAction("Index");
        ////    }
        ////    catch
        ////    {
        ////        return View();
        ////    }
        //}

        // GET: Profile/Edit/5
        public ActionResult Edit(int id)
        {
            using (UserDatabaseEntities dc = new UserDatabaseEntities())
            {
                return(View(dc.Users.Where(x => x.UserID == id).FirstOrDefault()));
            }
        }
示例#3
0
        public ActionResult ResetPassword(ResetPasswordModel model)
        {
            var message = "";

            if (ModelState.IsValid)
            {
                using  (UserDatabaseEntities dc = new UserDatabaseEntities())
                {
                    var user = dc.Users.Where(a => a.ResetPasswordCode == model.ResetCode).FirstOrDefault();
                    if (user != null)
                    {
                        user.Password          = Crypto.Hash(model.NewPassword);
                        user.ResetPasswordCode = "";
                        dc.Configuration.ValidateOnSaveEnabled = false; // same password match issue
                        dc.SaveChanges();
                        message = "New Password Updated Successfully";
                    }
                }
            }
            else
            {
                message = "Password Reset Unsuccessful. Please contact an Administrator using the Contact Us Page.";
            }
            ViewBag.Message = message;
            return(View(model));
        }
示例#4
0
 public bool IsEmailExist(string email_Address)
 {
     using (UserDatabaseEntities dc = new UserDatabaseEntities())
     {
         var v = dc.Users.Where(a => a.Email_Address == email_Address).FirstOrDefault();
         return(v != null);
     }
 }
示例#5
0
 public bool IsEmailExist(string Email)
 {
     using (UserDatabaseEntities dc = new UserDatabaseEntities())
     {
         var t = dc.Users.Where(a => a.EmailID == Email).FirstOrDefault();
         return(t != null);
     }
 }
示例#6
0
        public ActionResult Registration([Bind(Exclude = "IsEmailVerified,Activation_Code")] User user)
        {
            bool   Status  = false;
            string message = "";

            //
            //Model Validation
            if (ModelState.IsValid)
            {
                //Does Email Exist?
                #region //Email Already Exists
                var isExist = IsEmailExist(user.Email_Address);
                if (isExist)
                {
                    ModelState.AddModelError("EmailExist", "Email already exists");
                    return(View(user));
                }
                #endregion
                // Generate Activation Code
                #region Generate Activation Code
                user.Activation_Code = Guid.NewGuid();
                #endregion

                // Password Hashing
                #region Password Hashing
                user.Password        = Crypto.Hash(user.Password);
                user.ConfirmPassword = Crypto.Hash(user.ConfirmPassword);
                #endregion
                user.IsEmailVerified = false;

                //Save Data to Database
                #region Save to Database
                using (UserDatabaseEntities dc = new UserDatabaseEntities())
                {
                    dc.Users.Add(user);
                    dc.SaveChanges();
                    //E:\Project Site\FinalProjectSite\FinalProjectSite\App_Data\UserDatabase.mdf
                    //Send Email to User
                    SendVerificationLinkEmail(user.Email_Address, user.Activation_Code.ToString());
                    message = "Registration Successful. Account activation link " +
                              " has been sent to your Email Address:" + user.Email_Address;
                    Status = true;
                }
                #endregion
            }
            else
            {
                message = "Invalid Request";
            }



            ViewBag.Message = message;
            ViewBag.Status  = Status;
            return(View(user));
        }
示例#7
0
        public ActionResult Index(string search)
        {
            UserDatabaseEntities dc = new UserDatabaseEntities();
            var customers           = from s in dc.Users
                                      select s;

            if (!String.IsNullOrEmpty(search))
            {
                customers = customers.Where(s => s.Email_Address.Contains(search));
            }
            return(View(customers.ToList()));
        }
示例#8
0
        public ActionResult Edit(int id, User user)
        {
            try
            {
                using (UserDatabaseEntities dc = new UserDatabaseEntities())
                {
                    dc.Entry(user).State = EntityState.Modified;
                    dc.SaveChanges();
                }
                // TODO: Add update logic here

                return(RedirectToAction("Index"));
            }
            catch
            {
                return(View());
            }
        }
示例#9
0
 public ActionResult Delete(int id, FormCollection collection)
 {
     try
     {
         using (UserDatabaseEntities dc = new UserDatabaseEntities())
         {
             User user = dc.Users.Where(x => x.UserID == id).FirstOrDefault();
             dc.Users.Remove(user);
             dc.SaveChanges();
             // TODO: Add delete logic here
         }
         return(RedirectToAction("Index"));
     }
     catch
     {
         return(View());
     }
 }
示例#10
0
        public ActionResult Login(UserLogin login, string ReturnUrl)
        {
            string message = "";

            using (UserDatabaseEntities dc = new UserDatabaseEntities())
            {
                var v = dc.Users.Where(a => a.Email_Address == login.Email_address).FirstOrDefault();
                if (v != null)
                {
                    if (string.Compare(Crypto.Hash(login.Password), v.Password) == 0)
                    {
                        int    timeout   = login.RememberMe ? 525600 : 20; //525600 min = 1year of remembering
                        var    ticket    = new FormsAuthenticationTicket(login.Email_address, login.RememberMe, timeout);
                        string encrypted = FormsAuthentication.Encrypt(ticket);
                        var    cookie    = new HttpCookie(FormsAuthentication.FormsCookieName, encrypted);
                        cookie.Expires  = DateTime.Now.AddMinutes(timeout);
                        cookie.HttpOnly = true;
                        Response.Cookies.Add(cookie);


                        if (Url.IsLocalUrl(ReturnUrl))
                        {
                            return(Redirect(ReturnUrl));
                        }
                        else
                        {
                            return(RedirectToAction("LoginWelcome", "Home"));
                        }
                    }
                    else
                    {
                        message = "Invalid Credentials Provided";
                    }
                }
                else
                {
                    message = "Invalid Credentials Provided";
                }
            }
            ViewBag.Message = message;
            return(View());
        }
示例#11
0
 public ActionResult ResetPassword(string id)
 {
     //Verify the reset password link
     //find account associated with the link
     //redirect to new password page
     using (UserDatabaseEntities dc = new UserDatabaseEntities())
     {
         var user = dc.Users.Where(a => a.ResetPasswordCode == id).FirstOrDefault();
         if (user != null)
         {
             ResetPasswordModel model = new ResetPasswordModel();
             model.ResetCode = id;
             return(View(model));
         }
         else
         {
             return(HttpNotFound());
         }
     }
 }
示例#12
0
        public ActionResult VerifyAccount(string id)
        {
            bool Status = false;

            using (UserDatabaseEntities dc = new UserDatabaseEntities())
            {
                dc.Configuration.ValidateOnSaveEnabled = false; //This is to avoid confirm password does not match issue on save changes

                var v = dc.Users.Where(a => a.Activation_Code == new Guid(id)).FirstOrDefault();
                if (v != null)
                {
                    v.IsEmailVerified = true;
                    dc.SaveChanges();
                    Status = true;
                }
                else
                {
                    ViewBag.Message = "Invalid Request";
                }
            }
            ViewBag.Status = Status;
            return(View());
        }