public async Task <IActionResult> ConfirmEmail(string userId, string code)
        {
            try
            {
                ApplicationUserFromIdentityModel user = await _userManager.FindByIdAsync(userId);

                if (user.EmailConfirmed)
                {
                    return(Ok("Email already Confirmed!"));
                }

                if (user != null)
                {
                    var result = await _userManager.ConfirmEmailAsync(user, code);

                    if (result.Succeeded)
                    {
                        return(Ok("Confirmed"));
                    }
                }
                return(NotFound());
            }
            catch (Exception)
            {
                return(BadRequest());
            }
        }
        public async Task <IActionResult> GetConfirmationCode(UserContractUserModel model)
        {
            try
            {
                if (model != null & model.Email != null)
                {
                    ApplicationUserFromIdentityModel user = await _userManager.FindByEmailAsync(model.Email);

                    if (user != null)
                    {
                        var checkUserPassword = await _userManager.CheckPasswordAsync(user, model.Password);

                        if (checkUserPassword)
                        {
                            var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);

                            return(Ok(code));
                        }
                    }
                }
                return(BadRequest());
            }
            catch (Exception)
            {
                return(BadRequest());
            }
        }
Ejemplo n.º 3
0
 /// <summary>
 /// Check if user is admin or authorized to update/delete the item.
 /// </summary>
 /// <param name="currentUser">Current user of the httpcontext</param>currentUser
 /// <param name="correspondingUserId">User Id of the corresponding item</param>
 /// <returns></returns>
 protected async Task <bool> CheckIfAuthorized(ApplicationUserFromIdentityModel currentUser, string correspondingUserId)
 {
     try
     {
         if (await _userManager.IsInRoleAsync(currentUser, "Admin") || String.Equals(correspondingUserId, currentUser.Id))
         {
             return(true);
         }
         return(false);
     }
     catch (Exception)
     {
         return(false);
     }
 }
        public async Task <IActionResult> ResetPassword(ResetPasswordContractUserModel model)
        {
            if (ModelState.IsValid)
            {
                if (model.UserId != null)
                {
                    ApplicationUserFromIdentityModel user = await _userManager.FindByIdAsync(model.UserId);

                    var result = await _userManager.ResetPasswordAsync(user, model.Code, model.Password);

                    if (!result.Succeeded)
                    {
                        return(GetErrorResult(result));
                    }
                    return(Ok());
                }
                return(NotFound());
            }
            return(BadRequest(ModelState));
        }
        public async Task <IActionResult> GetForgotPasswordCode(string email)
        {
            var model = new ForgotPasswordContractUserModel();

            if (ModelState.IsValid)
            {
                ApplicationUserFromIdentityModel user = await _userManager.FindByEmailAsync(email);

                if (user != null)
                {
                    var code = await _userManager.GeneratePasswordResetTokenAsync(user);

                    model.Code  = HttpUtility.UrlEncode(code);
                    model.Email = email;
                    return(Ok(code));
                }
                return(NotFound());
            }
            return(BadRequest());
        }
        public async Task <IActionResult> Register(RegisterUserContractModel userModel)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest());
                }

                var user = new ApplicationUserFromIdentityModel
                {
                    UserName    = userModel.UserName,
                    Email       = userModel.Email,
                    FirstName   = userModel.FirstName,
                    LastName    = userModel.LastName,
                    PhoneNumber = userModel.PhoneNumber,
                    CreatedOn   = DateTime.Now,
                    UpdatedOn   = DateTime.Now
                };

                IdentityResult result = await _userManager.CreateAsync(user, userModel.Password);

                if (!result.Succeeded)
                {
                    return(GetErrorResult(result));
                }

                // return specifics?
                // return Created();
                return(Ok());
            }
            catch (Exception)
            {
                return(new StatusCodeResult(StatusCodes.Status500InternalServerError));
            }
        }