public ActionResult Index(Login login) { System.Threading.Thread.Sleep(2000); // Add two second delay // UserStore and UserManager manages data retreival. UserStore<IdentityUser> userStore = new UserStore<IdentityUser>(); UserManager<IdentityUser> manager = new UserManager<IdentityUser>(userStore); IdentityUser identityUser = manager.Find(login.UserName, login.Password); if (ModelState.IsValid) { CaptchaHelper captchaHelper = new CaptchaHelper(); string captchaResponse = captchaHelper.CheckRecaptcha(); ViewBag.CaptchaResponse = captchaResponse; if (ValidLogin(login) && captchaResponse == VALID_CAPTCHA) { IAuthenticationManager authenticationManager = HttpContext.GetOwinContext().Authentication; authenticationManager .SignOut(DefaultAuthenticationTypes.ExternalCookie); var identity = new ClaimsIdentity(new[] { new Claim(ClaimTypes.Name, login.UserName), }, DefaultAuthenticationTypes.ApplicationCookie, ClaimTypes.Name, ClaimTypes.Role); // SignIn() accepts ClaimsIdentity and issues logged in cookie. authenticationManager.SignIn(new AuthenticationProperties { IsPersistent = false }, identity); return RedirectToAction("SecureArea", "Home"); } } return View(); }
public ActionResult ForgotPassword(string email) { CaptchaHelper captchaHelper = new CaptchaHelper(); string captchaResponse = captchaHelper.CheckRecaptcha(); ViewBag.CaptchaResponse = captchaResponse; if (captchaResponse == VALID_CAPTCHA) { var userStore = new UserStore<IdentityUser>(); UserManager<IdentityUser> manager = new UserManager<IdentityUser>(userStore); var user = manager.FindByEmail(email); CreateTokenProvider(manager, PASSWORD_RESET); var code = manager.GeneratePasswordResetToken(user.Id); var callbackUrl = Url.Action("ResetPassword", "Home", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme); var emailMsg = "<h3>Please reset your password by clicking</h3> <a href=\"" + callbackUrl + "\">This Link</a>"; MailHelper mailer = new MailHelper(); string response = mailer.EmailFromArvixe(new RegisteredUser { Email = user.Email, UserName = user.UserName }, emailMsg); ViewBag.Response = response; TempData["response"] = response; return RedirectToAction("Index", "Home"); } return View(); }
public ActionResult Register(RegisteredUser newUser) { CaptchaHelper captchaHelper = new CaptchaHelper(); string captchaResponse = captchaHelper.CheckRecaptcha(); ViewBag.CaptchaResponse = captchaResponse; TempData["captcha"] = captchaResponse; var userStore = new UserStore<IdentityUser>(); UserManager<IdentityUser> manager = new UserManager<IdentityUser>(userStore) { UserLockoutEnabledByDefault = true, DefaultAccountLockoutTimeSpan = new System.TimeSpan(0, 10, 0), MaxFailedAccessAttemptsBeforeLockout = 3 }; var identityUser = new IdentityUser() { UserName = newUser.UserName, Email = newUser.Email }; IdentityResult result = manager.Create(identityUser, newUser.Password); if (result.Succeeded && captchaResponse == VALID_CAPTCHA) { CreateTokenProvider(manager, EMAIL_CONFIRMATION); var code = manager.GenerateEmailConfirmationToken(identityUser.Id); var callbackUrl = Url.Action("ConfirmEmail", "Home", new { userId = identityUser.Id, code = code }, protocol: Request.Url.Scheme); string email = "<h3>Please confirm your account by clicking this link:</h3><a href=\"" + callbackUrl + "\">Confirm Registration</a>"; MailHelper mailer = new MailHelper(); string response = mailer.EmailFromArvixe(newUser, email); ViewBag.Response = response; TempData["response"] = response; } return RedirectToAction("Index","Home"); }