Пример #1
0
        // GET: Teachers/ResetPassword // for teacher
        public ActionResult ResetPassword(string id)
        {
            //Verify the reset password link
            //Find account associated with this link
            //redirect to reset password page
            if (string.IsNullOrWhiteSpace(id))
            {
                return(HttpNotFound());
            }

            using (TeacherRegsEntities teacherReg = new TeacherRegsEntities())
            {
                var user = teacherReg.TeacherLogins.Where(a => a.ResetPasswordCode == id).FirstOrDefault();
                if (user != null)
                {
                    ResetPassword reset = new ResetPassword();
                    reset.ResetCode = id;
                    return(View(reset));
                }
                else
                {
                    return(HttpNotFound());
                }
            }
        }
Пример #2
0
        public ActionResult ForgotPassword(string Email)
        {
            bool status = false;

            using (TeacherRegsEntities teacherReg = new TeacherRegsEntities())
            {
                var account = teacherReg.TeacherLogins.Where(a => a.Email == Email).FirstOrDefault();
                if (account != null)
                {
                    //Send email for reset password
                    string resetCode = Guid.NewGuid().ToString();
                    SendVerificationLinkEmail(account.Email, resetCode, "ResetPassword");
                    account.ResetPasswordCode = resetCode;

                    //Avoid confirm password not match issue, as we had added a confirm password property
                    teacherReg.Configuration.ValidateOnSaveEnabled = false;
                    teacherReg.SaveChanges();
                    ViewBag.Message = "Reset password link has been sent to your email id";
                    ModelState.Clear();
                }
                else
                {
                    ViewBag.ErrorMessage = "Sorry! account not found";
                }
            }
            return(View());
        }
Пример #3
0
 public bool IsEmailExist(string email)
 {
     using (TeacherRegsEntities teacherReg = new TeacherRegsEntities())
     {
         var v = teacherReg.TeacherLogins.Where(a => a.Email == email).FirstOrDefault();
         return(v != null);
     }
 }
Пример #4
0
        public ActionResult Register([Bind(Exclude = "IsEmailVerified,ActivationCode")] TeacherLogin teacherLogin)
        {
            bool   Status  = false;
            string message = "";

            if (ModelState.IsValid)
            {
                // Email is already Exist
                var isExist = IsEmailExist(teacherLogin.Email);
                if (isExist)
                {
                    ModelState.AddModelError("EmailExist", "Email already exist");
                    return(View(teacherLogin));
                }

                // Generate Activation Code
                teacherLogin.ActivationCode = Guid.NewGuid();

                // Password Hashing
                teacherLogin.Password        = Crypto.Hash(teacherLogin.Password);
                teacherLogin.ConfirmPassword = Crypto.Hash(teacherLogin.ConfirmPassword);

                teacherLogin.IsEmailVerified = false;

                // Save to Database
                using (TeacherRegsEntities teacherReg = new TeacherRegsEntities())
                {
                    Teachers teacher = new Teachers();
                    teacher.Id = teacherLogin.Id;
                    if (teacher.checkId())
                    {
                        teacher.Initial = teacherLogin.Initial;
                        teacher.Registration();
                        teacherReg.TeacherLogins.Add(teacherLogin);
                        teacherReg.SaveChanges();

                        // Send Email to User
                        SendVerificationLinkEmail(teacherLogin.Email, teacherLogin.ActivationCode.ToString());
                        message = "Registration successfully done. Account activation link " +
                                  " has been sent to your email id:" + teacherLogin.Email;
                        Status = true;
                    }
                    else
                    {
                        message = "Invalid id";
                    }
                }
            }
            else
            {
                message = "Invalid Request";
            }

            ViewBag.Message = message;
            ViewBag.Status  = Status;
            return(View());
        }
Пример #5
0
        public ActionResult Login(Teachers teacher, string ReturnUrl = "")
        {
            string message = "";

            using (TeacherRegsEntities teacherReg = new TeacherRegsEntities())
            {
                var v = teacherReg.TeacherLogins.Where(a => a.Id == teacher.Id).FirstOrDefault();
                if (v != null)
                {
                    if (!v.IsEmailVerified)
                    {
                        ViewBag.ErrorMessage = "Please verify your email first";
                        return(View());
                    }
                    if (string.Compare(Crypto.Hash(teacher.Password), v.Password) == 0)
                    {
                        int        timeout   = teacher.RememberMe ? 1440 : 720; // 1440 min = 1 day && 720 min= 12 hour
                        var        ticket    = new FormsAuthenticationTicket(teacher.Id, teacher.RememberMe, timeout);
                        string     encrypted = FormsAuthentication.Encrypt(ticket);
                        HttpCookie cookie    = new HttpCookie("teacher", encrypted);
                        cookie.Expires = DateTime.Now.AddMinutes(timeout);
                        Response.Cookies.Add(cookie);
                        ViewBag.User = Request.Cookies.Get("teacher").Value;
                        if (Url.IsLocalUrl(ReturnUrl))
                        {
                            return(Redirect(ReturnUrl));
                        }
                        else
                        {
                            return(RedirectToAction("Index", "Teachers"));
                        }
                    }
                    else
                    {
                        message = "Invalid Id or password";
                    }
                }
                else
                {
                    message = "Invalid credential provided";
                }
            }
            ViewBag.ErrorMessage = message;
            return(View());
        }
Пример #6
0
        public ActionResult VerifyAccount(string id)
        {
            bool Status = false;

            using (TeacherRegsEntities teacherReg = new TeacherRegsEntities())
            {
                teacherReg.Configuration.ValidateOnSaveEnabled = false; // This line I have added here to avoid
                // Confirm password does not match issue on save changes
                var v = teacherReg.TeacherLogins.Where(a => a.ActivationCode == new Guid(id)).FirstOrDefault();
                if (v != null)
                {
                    v.IsEmailVerified = true;
                    teacherReg.SaveChanges();
                    Status = true;
                }
                else
                {
                    ViewBag.Message = "Invalid Request";
                }
            }
            ViewBag.Status = Status;
            return(View());
        }
Пример #7
0
 public ActionResult ResetPassword(ResetPassword reset)
 {
     if (ModelState.IsValid)
     {
         using (TeacherRegsEntities teacherReg = new TeacherRegsEntities())
         {
             var user = teacherReg.TeacherLogins.Where(a => a.ResetPasswordCode == reset.ResetCode).FirstOrDefault();
             if (user != null)
             {
                 user.Password          = Crypto.Hash(reset.NewPassword);
                 user.ResetPasswordCode = "";
                 teacherReg.Configuration.ValidateOnSaveEnabled = false;
                 teacherReg.SaveChanges();
                 ViewBag.message = "New password updated successfully";
             }
         }
         ModelState.Clear();
     }
     else
     {
         ViewBag.Errormessage = "Something invalid!";
     }
     return(View(reset));
 }