public async Task <ActionResult> SetPassword(SetPasswordViewModel model)
        {
            if (ModelState.IsValid)
            {
                var result = await UserManager.AddPasswordAsync(User.Identity.GetUserId(), model.NewPassword);

                if (result.Succeeded)
                {
                    var user = await UserManager.FindByIdAsync(User.Identity.GetUserId());

                    if (user != null)
                    {
                        await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false);
                    }
                    return(RedirectToAction("Index", new { Message = ManageMessageId.SetPasswordSuccess }));
                }
                AddErrors(result);
            }

            // Se chegamos até aqui, algo falhou, mostrar formulário novamente
            return(View(model));
        }
Пример #2
0
        public async Task <ActionResult> SetPassword(SetPasswordViewModel model)
        {
            if (ModelState.IsValid)
            {
                var result = await UserManager.AddPasswordAsync(User.Identity.GetUserId(), model.NewPassword);

                if (result.Succeeded)
                {
                    var user = await UserManager.FindByIdAsync(User.Identity.GetUserId());

                    if (user != null)
                    {
                        await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false);
                    }
                    return(RedirectToAction("Index", new { Message = ManageMessageId.SetPasswordSuccess }));
                }
                AddErrors(result);
            }

            // If we got this far, something failed, redisplay form
            return(View(model));
        }
Пример #3
0
        public async Task <ActionResult> SetPassword(SetPasswordViewModel model)
        {
            if (ModelState.IsValid)
            {
                var result = await UserManager.AddPasswordAsync(User.Identity.GetUserId(), model.NewPassword);

                if (result.Succeeded)
                {
                    var user = await UserManager.FindByIdAsync(User.Identity.GetUserId());

                    if (user != null)
                    {
                        await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false);
                    }
                    return(RedirectToAction("Index", new { Message = ManageMessageId.SetPasswordSuccess }));
                }
                AddErrors(result);
            }

            // Это сообщение означает наличие ошибки; повторное отображение формы
            return(View(model));
        }
Пример #4
0
        public async Task <ActionResult> SetPassword(SetPasswordViewModel model)
        {
            if (ModelState.IsValid)
            {
                var result = await UserManager.AddPasswordAsync(User.Identity.GetUserId(), model.NewPassword);

                if (result.Succeeded)
                {
                    var user = await UserManager.FindByIdAsync(User.Identity.GetUserId());

                    if (user != null)
                    {
                        await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false);
                    }
                    return(RedirectToAction("Index", new { Message = ManageMessageId.SetPasswordSuccess }));
                }
                AddErrors(result);
            }

            //Si nous sommes arrivés là, quelque chose a échoué, réafficher le formulaire
            return(View(model));
        }
Пример #5
0
        public async Task <ActionResult> SetPassword(SetPasswordViewModel model)
        {
            if (ModelState.IsValid)
            {
                var result = await UserManager.AddPasswordAsync(User.Identity.GetUserId(), model.NewPassword);

                if (result.Succeeded)
                {
                    var user = await UserManager.FindByIdAsync(User.Identity.GetUserId());

                    if (user != null)
                    {
                        await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false);
                    }
                    return(RedirectToAction("Index", new { Message = ManageMessageId.SetPasswordSuccess }));
                }
                AddErrors(result);
            }

            // Si llegamos a este punto, es que se ha producido un error, volvemos a mostrar el formulario
            return(View(model));
        }
Пример #6
0
        public async Task <ActionResult> SetPassword(SetPasswordViewModel model)
        {
            if (ModelState.IsValid)
            {
                var result = await UserManager.AddPasswordAsync(User.Identity.GetUserId(), model.NewPassword);

                if (result.Succeeded)
                {
                    var user = await UserManager.FindByIdAsync(User.Identity.GetUserId());

                    if (user != null)
                    {
                        await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false);
                    }
                    return(RedirectToAction("Index", new { Message = ManageMessageId.SetPasswordSuccess }));
                }
                AddErrors(result);
            }

            // Jeśli dotarliśmy tak daleko, oznacza to, że wystąpił błąd. Wyświetl ponownie formularz
            return(View(model));
        }
Пример #7
0
        public async Task <ActionResult> SetPassword(SetPasswordViewModel model)
        {
            if (ModelState.IsValid)
            {
                var result = await UserManager.AddPasswordAsync(User.Identity.GetUserId(), model.NewPassword);

                if (result.Succeeded)
                {
                    var user = await UserManager.FindByIdAsync(User.Identity.GetUserId());

                    if (user != null)
                    {
                        await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false);
                    }
                    return(RedirectToAction("ShopManage", new { Message = ManageMessageId.SetPasswordSuccess }));
                }
                AddErrors(result);
            }

            // 如果我们进行到这一步时某个地方出错,则重新显示表单
            return(View(model));
        }
Пример #8
0
        public async Task <ActionResult> SetPassword(SetPasswordViewModel model)
        {
            if (ModelState.IsValid)
            {
                var result = await UserManager.AddPasswordAsync(User.Identity.GetUserId(), model.NewPassword);

                if (result.Succeeded)
                {
                    var user = await UserManager.FindByIdAsync(User.Identity.GetUserId());

                    if (user != null)
                    {
                        await SignInAsync(user, isPersistent : false);
                    }
                    return(RedirectToAction("Index", new { Message = ManageMessageId.SetPasswordSuccess }));
                }
                AddErrors(result);
            }

            // No caso de falha, reexibir a view.
            return(View(model));
        }
Пример #9
0
        public async Task <ActionResult> SetPassword(SetPasswordViewModel model)
        {
            var correo          = User.Identity.Name;
            var idPersona       = DbModel.Personas.FirstOrDefault(x => x.Correo == correo);
            var cantidadCarrito = DbModel.CarritoCompras.Where(X => X.idPersona == idPersona.idPersona).ToList();

            ViewBag.cantidadCarrito = cantidadCarrito.Count;
            if (ModelState.IsValid)
            {
                var result = await UserManager.AddPasswordAsync(User.Identity.GetUserId(), model.NewPassword);

                var gmail = User.Identity.GetUserName();
                using (this.DbModel = new ApplicationDbContext())
                {
                    Usuario usuario = new Usuario();
                    usuario          = DbModel.Usuarios.FirstOrDefault(x => x.User == gmail);
                    usuario.Password = model.NewPassword;
                    DbModel.Usuarios.AddOrUpdate(usuario);
                    DbModel.SaveChanges();
                }

                if (result.Succeeded)
                {
                    var user = await UserManager.FindByIdAsync(User.Identity.GetUserId());

                    if (user != null)
                    {
                        await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false);
                    }
                    return(RedirectToAction("Index", new { Message = ManageMessageId.SetPasswordSuccess }));
                }
                AddErrors(result);
            }

            // Si llegamos a este punto, es que se ha producido un error, volvemos a mostrar el formulario
            return(View(model));
        }
Пример #10
0
        public async Task <ActionResult> SetPassword(SetPasswordViewModel model)
        {
            if (ModelState.IsValid)
            {
                var result = await UserManager.AddPasswordAsync(model.Id, model.NewPassword);

                if (result.Succeeded)
                {
                    var user = await UserManager.FindByIdAsync(model.Id);

                    if (user != null && User.Identity.GetUserId().Equals(model.Id))
                    {
                        await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false);
                    }
                    TempData["Code"]     = "success";
                    TempData["Head"]     = "Done";
                    TempData["Messages"] = new List <string>()
                    {
                        "Password has been set."
                    };
                }
                else
                {
                    TempData["Code"]     = "danger";
                    TempData["Head"]     = "Error";
                    TempData["Messages"] = result.Errors.ToList();
                }
            }
            else
            {
                var errors = ModelState.Values.SelectMany(a => a.Errors);
                TempData["Code"]     = "danger";
                TempData["Head"]     = "Error";
                TempData["Messages"] = errors.Select(a => a.ErrorMessage).ToList();
            }
            return(RedirectToAction("Index", new { id = model.Id }));
        }
Пример #11
0
 public async Task<IdentityResult> AddPasswordAsync(Guid userId, string password)
 {
     var result = await _userManager.AddPasswordAsync(userId, password);
     return result;
 }
Пример #12
0
        public async Task <ActionResult> CompleteRegistration(CompleteRegistrationViewModel model)
        {
            if (ModelState.IsValid)
            {
                // Get the current user through their UserID
                var user = await UserManager.FindByIdAsync(model.UserID);

                // If the user isn't null, we found a match, so update the account
                if (user != null)
                {
                    // Update it with the values from the view model
                    user.FirstName      = model.FirstName;
                    user.LastName       = model.LastName;
                    user.UserName       = model.UserName;
                    user.EmailConfirmed = true;

                    // Assign the password to this user account
                    var addPassword = await UserManager.AddPasswordAsync(model.UserID, model.Password);

                    var result = await UserManager.UpdateAsync(user);

                    if (result.Succeeded)
                    {
                        // Apply the changes
                        UserManager.Update(user);

                        // Create the entry for the UserProfile table
                        UserProfile newUser = new UserProfile
                        {
                            UserID          = model.UserID,
                            FullName        = model.FirstName + " " + model.LastName,
                            UserName        = model.UserName,
                            Email           = user.Email,
                            IsCaller        = false,
                            CallsRemaining  = 0,
                            DonationsRaised = 0
                        };

                        // Set all Standard users to be callers -- Admins will not be counted as callers for now
                        var userEntry = await UserManager.FindAsync(newUser.Email, model.Password);

                        var roles = await UserManager.GetRolesAsync(user.Id);

                        if (roles.Contains("Standard"))
                        {
                            newUser.IsCaller = true;
                        }

                        // Add them to the table and save the changes
                        db.UserProfiles.Add(newUser);
                        db.SaveChanges();

                        // Redirect to the login page (TO-DO: UPDATE THIS TO THE APPROPRIATE DASHBOARD BASED ON THE USER'S ROLE)
                        return(RedirectToAction("Login", "Account"));
                    }

                    // Display any errors
                    foreach (var error in result.Errors)
                    {
                        ModelState.AddModelError("", error);
                    }

                    // The password wasn't added successfully -- don't update the account and return the view
                    return(View(model));
                }

                // There was no match -- just return the view
                return(View(model));
            }

            // Invalid model state -- return the view
            return(View(model));
        }
 public Task <IdentityResult> AddPasswordAsync(string userId, string password)
 {
     return(UserManager.AddPasswordAsync(userId, password));
 }
Пример #14
0
        public async Task <ActionResult> Register(RegisterViewModel model, string returnUrl)
        {
            RegisterViewModel registerViewModel = model;

            Logger.Current.Informational("Are these RegisterViewModel fields valid : " + ModelState.IsValid);
            if (ModelState.IsValid)
            {
                try
                {
                    var user = new IdentityUser()
                    {
                        Id       = registerViewModel.UserId,
                        Password = registerViewModel.Password,
                        UserName = registerViewModel.Email,
                        Email    = new Email()
                        {
                            EmailId    = registerViewModel.AccountId + "|" + registerViewModel.Email,
                            IsVerified = false
                        },
                        AccountID = registerViewModel.AccountId
                    };
                    IdentityResult result = await UserManager.AddPasswordAsync(user.Id, user.Password);

                    if (result.Succeeded)
                    {
                        var userName = registerViewModel.Email + "|" + registerViewModel.AccountId;
                        var newUser  = await UserManager.FindByNameAsync(userName);

                        int userID;
                        int.TryParse(model.UserId, out userID);
                        string IP = Request.UserHostAddress;
                        UserManager.InsertLoginAudit(userID, model.AccountId, IP, SignInActivity.SignIn);
                        UserManager.InsertUserProfileAudit(userID, UserAuditType.PasswordChange, userID, model.Password);
                        AddCookie("IsFirstLogin", 0.ToString(), 1);
                        bool showTC = accountService.ShowTC(new ShowTCRequest()
                        {
                            AccountId = (int)model.AccountId
                        }).ShowTC;
                        UserSettings userSettings = accountService.GetFirstLoginUserSettings(new GetFirstLoginUserSettingsRequest()
                        {
                            RequestedBy = userID
                        }).UserSettings;
                        if (userSettings != null && !userSettings.HasAcceptedTC && showTC)
                        {
                            AddCookie("ShowTC", "1", 1);
                        }
                        else
                        {
                            AddCookie("ShowTC", "0", 1);
                        }
                        await SignInAsync(user, registerViewModel.RememberMe);

                        return(RedirectToLocal(returnUrl, newUser.RoleID, model.AccountId, "", ""));
                    }
                    else
                    {
                        Logger.Current.Informational("Adding password for the user failed" + result.Errors);
                        AddErrors(result);
                    }
                }
                catch (Exception ex)
                {
                    ExceptionHandler.Current.HandleException(ex, DefaultExceptionPolicies.LOG_ONLY_POLICY);
                    ModelState.AddModelError("", "[|An error occurred, please try again later.|]");
                    return(View(model));
                }
            }
            return(View(model));
        }
Пример #15
0
        public async Task<ActionResult> Edit(UserDetailsViewModel model)
        {
            if (ModelState.IsValid)
            {
                using (var db = new ApplicationDbContext())
                {
                    MyUser user = db.Users.Find(model.UserId);

                    user.Id = model.UserId;
                    user.UserName = model.UserName;
                    user.Email = model.EmailAddress;
                    user.EmailConfirmed = model.EmailAddressConfirmed;
                    user.AccessFailedCount = model.AccessFailedCount;
                    user.LockoutEnabled = model.LockoutEnabled;
                    user.LockoutEndDateUtc = model.LockoutEndDate;

                    user.UserDetails.FirstName = model.FirstName;
                    user.UserDetails.LastName = model.LastName;
                    user.UserDetails.Age = model.Age;
                    user.UserDetails.Address = model.Address;
                    user.UserDetails.City = model.City;
                    user.UserDetails.Country = model.Country;

                    MyUserRole currentRole = db.Users.FirstOrDefault(m => m.Id == model.UserId)
                        .Roles.FirstOrDefault();

                    db.Users.FirstOrDefault(m => m.Id == model.UserId)
                        .Roles.Remove(currentRole);
                    db.Users.FirstOrDefault(m => m.Id == model.UserId)
                        .Roles.Add(new MyUserRole { RoleId = int.Parse(model.Role), UserId = model.UserId });

                    db.Entry(user).State = EntityState.Modified;
                    await db.SaveChangesAsync();

                    ApplicationUserManager userManager = new ApplicationUserManager(new MyUserStore(new ApplicationDbContext()));

                    // Dodati da se novi password salje ;)

                    await userManager.RemovePasswordAsync(model.UserId);
                    await userManager.AddPasswordAsync(model.UserId, model.Password);
                }
                return RedirectToAction("Index", new { Message = UserMessageId.ChangeUser });
            }

            ViewBag.Roles = new SelectList(db.Roles.AsEnumerable().ToList(),
                "Id", "Name", db.Roles.FirstOrDefault(m => m.Id.ToString() == model.Role));

            ViewBag.Id = new SelectList(db.UserDetails, "Id", "Role", model.Role);
            return View(model);
        }
        public async Task<IHttpActionResult> SetPassword(SetPasswordBindingModel model)
        {
            if (!ModelState.IsValid)
                return BadRequest(ModelState);

            var manager = new ApplicationUserManager(new MySqlUserStore<ApplicationUser>());
            IdentityResult result = await manager.AddPasswordAsync(User.Identity.GetUserId(), model.NewPassword);

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

            return Ok();
        }