예제 #1
0
        public async Task <IHttpActionResult> Register(RegisterBindingModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            User user = new User {
                UserName = model.UserName,
                Email    = model.UserName
            };

            IdentityResult result = await UserManager.CreateAsync(user, model.Password);

            IHttpActionResult errorResult = GetErrorResult(result);

            if (errorResult != null)
            {
                return(errorResult);
            }

            if (result.Succeeded)
            {
                var code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);

                var callbackUrl = Utility.AbsoluteUrl(string.Format("/ConfirmEmail?code={0}&userId={1}", HttpUtility.UrlEncode(code), HttpUtility.UrlEncode(user.Id)));
                await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking this link: <a href=\"" + callbackUrl + "\">link</a>");
            }

            return(Ok());
        }
예제 #2
0
        public async Task <IHttpActionResult> ForgotPassword(ForgotPasswordViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var user = await UserManager.FindByNameAsync(model.Email);

            if (user == null)
            {
                // Don't reveal that the user does not exist or is not confirmed
                ModelState.AddModelError("", "That user does not exist");
                return(BadRequest(ModelState));
            }

            var code = await UserManager.GeneratePasswordResetTokenAsync(user.Id);

            var callbackUrl = Utility.AbsoluteUrl("/ResetPassword?code=" + HttpUtility.UrlEncode(code));
            await UserManager.SendEmailAsync(user.Id, "Reset Password", "Please reset your password by clicking here: <a href=\"" + callbackUrl + "\">link</a>");

            return(Ok(new { message = "We've emailed you a link to reset your password!" }));
        }