Ejemplo n.º 1
0
        public async Task <ActionResult> Register(RegisterViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var user = new User
            {
                UserName  = model.UserName,
                FirstName = model.FirstName,
                LastName  = model.LastName,
                Email     = model.UserName,
                Enabled   = true
            };

            var registerResult = new IdentityResult();

            try
            {
                registerResult = await UserManager.CreateAsync(user, model.Password);
            }
            catch (Exception ex)
            {
                EventLogProvider.LogException("AccountController", "Register", ex);
                ModelState.AddModelError(String.Empty, ResHelper.GetString("register_failuretext"));
            }

            if (registerResult.Succeeded)
            {
                mMembershipActivitiesLogger.LogRegistration(model.UserName);
                await SignInManager.SignInAsync(user, true, false);

                ContactManagementContext.UpdateUserLoginContact(model.UserName);

                mMembershipActivitiesLogger.LogLogin(model.UserName);

                return(RedirectToAction("Index", "Home"));
            }

            foreach (var error in registerResult.Errors)
            {
                ModelState.AddModelError(String.Empty, error);
            }

            return(View(model));
        }
Ejemplo n.º 2
0
        public async Task <ActionResult> Login(LoginViewModel model, string returnUrl)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var signInResult = SignInResult.Failed;

            try
            {
                signInResult = await signInManager.PasswordSignInAsync(model.UserName, model.Password, model.StaySignedIn, false);
            }
            catch (Exception ex)
            {
                eventLogService.LogException("AccountController", "Login", ex);
            }

            if (signInResult.Succeeded)
            {
                ContactManagementContext.UpdateUserLoginContact(model.UserName);

                membershipActivitiesLogger.LogLogin(model.UserName);

                var decodedReturnUrl = WebUtility.UrlDecode(returnUrl);
                if (!string.IsNullOrEmpty(decodedReturnUrl) && Url.IsLocalUrl(decodedReturnUrl))
                {
                    return(View("RedirectAfterLogin", decodedReturnUrl));
                }

                return(Redirect("/"));
            }

            if (signInResult.IsNotAllowed)
            {
                ModelState.AddModelError(string.Empty, localizer["Your account requires activation before logging in."]);
            }
            else
            {
                ModelState.AddModelError(string.Empty, localizer["Your sign-in attempt was not successful. Please try again."].ToString());
            }

            return(View(model));
        }
        public async Task <ActionResult> Login(LoginViewModel model, string returnUrl)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var signInResult = SignInStatus.Failure;

            try
            {
                signInResult = await SignInManager.PasswordSignInAsync(model.UserName, model.Password, model.StaySignedIn, false);
            }
            catch (Exception ex)
            {
                Service.Resolve <IEventLogService>().LogException("AccountController", "Login", ex);
            }

            if (signInResult == SignInStatus.Success)
            {
                ContactManagementContext.UpdateUserLoginContact(model.UserName);

                membershipActivitiesLogger.LogLogin(model.UserName);

                var decodedReturnUrl = Server.UrlDecode(returnUrl);
                if (!string.IsNullOrEmpty(decodedReturnUrl) && Url.IsLocalUrl(decodedReturnUrl))
                {
                    return(Redirect(decodedReturnUrl));
                }

                return(Redirect(Url.Kentico().PageUrl(ContentItemIdentifiers.HOME)));
            }

            if (signInResult == SignInStatus.LockedOut)
            {
                ModelState.AddModelError(String.Empty, ResHelper.GetString("DancingGoatMvc.RequireConfirmedAccount"));
            }
            else
            {
                ModelState.AddModelError(String.Empty, ResHelper.GetString("login_failuretext"));
            }

            return(View(model));
        }
Ejemplo n.º 4
0
        public async Task <ActionResult> Login(LoginViewModel model, string returnUrl)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var signInResult = SignInStatus.Failure;

            try
            {
                signInResult = await SignInManager.PasswordSignInAsync(model.UserName, model.Password, model.StaySignedIn, false);
            }
            catch (Exception ex)
            {
                EventLogProvider.LogException("AccountController", "Login", ex);
            }

            if (signInResult == SignInStatus.Success)
            {
                ContactManagementContext.UpdateUserLoginContact(model.UserName);

                mMembershipActivitiesLogger.LogLogin(model.UserName);

                var decodedReturnUrl = Server.UrlDecode(returnUrl);
                if (!string.IsNullOrEmpty(decodedReturnUrl) && Url.IsLocalUrl(decodedReturnUrl))
                {
                    return(Redirect(decodedReturnUrl));
                }

                return(RedirectToAction("Index", "Home"));
            }

            ModelState.AddModelError(String.Empty, ResHelper.GetString("login_failuretext"));

            return(View(model));
        }
Ejemplo n.º 5
0
        public async Task <ActionResult> Register(RegisterViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var user = new ApplicationUser
            {
                UserName  = model.UserName,
                FirstName = model.FirstName,
                LastName  = model.LastName,
                Email     = model.UserName,
                FullName  = UserInfoProvider.GetFullName(model.FirstName, null, model.LastName),
                Enabled   = true
            };

            var registerResult = new IdentityResult();

            try
            {
                registerResult = await userManager.CreateAsync(user, model.Password);
            }
            catch (Exception ex)
            {
                eventLogService.LogException("AccountController", "Register", ex);
                ModelState.AddModelError(string.Empty, localizer["Your registration was not successful."]);
            }

            if (registerResult.Succeeded)
            {
                membershipActivitiesLogger.LogRegistration(model.UserName);

                var signInResult = await signInManager.PasswordSignInAsync(user, model.Password, true, false);

                if (signInResult.Succeeded)
                {
                    ContactManagementContext.UpdateUserLoginContact(model.UserName);

                    SendRegistrationSuccessfulEmail(user.Email);
                    membershipActivitiesLogger.LogLogin(model.UserName);

                    return(Redirect("/"));
                }

                if (signInResult.IsNotAllowed)
                {
                    if (user.WaitingForApproval)
                    {
                        SendWaitForApprovalEmail(user.Email);
                    }

                    return(RedirectToAction(nameof(RequireConfirmedAccount)));
                }
            }

            foreach (var error in registerResult.Errors)
            {
                ModelState.AddModelError(string.Empty, error.Description);
            }

            return(View(model));
        }
        public async Task <ActionResult> Register(RegisterViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var user = new User
            {
                UserName  = model.UserName,
                FirstName = model.FirstName,
                LastName  = model.LastName,
                Email     = model.UserName,
                FullName  = UserInfoProvider.GetFullName(model.FirstName, null, model.LastName),
                Enabled   = true
            };

            var registerResult = new IdentityResult();

            try
            {
                registerResult = await UserManager.CreateAsync(user, model.Password);
            }
            catch (Exception ex)
            {
                Service.Resolve <IEventLogService>().LogException("AccountController", "Register", ex);
                ModelState.AddModelError(String.Empty, ResHelper.GetString("register_failuretext"));
            }

            if (registerResult.Succeeded)
            {
                membershipActivitiesLogger.LogRegistration(model.UserName);
                var signInResult = await SignInManager.PasswordSignInAsync(model.UserName, model.Password, true, false);

                if (signInResult == SignInStatus.Success)
                {
                    ContactManagementContext.UpdateUserLoginContact(model.UserName);

                    SendRegistrationSuccessfulEmail(user.Email);
                    membershipActivitiesLogger.LogLogin(model.UserName);

                    return(Redirect(Url.Kentico().PageUrl(ContentItemIdentifiers.HOME)));
                }

                if (signInResult == SignInStatus.LockedOut)
                {
                    if (user.WaitingForApproval)
                    {
                        SendWaitForApprovalEmail(user.Email);
                    }

                    return(RedirectToAction("RequireConfirmedAccount"));
                }
            }

            foreach (var error in registerResult.Errors)
            {
                ModelState.AddModelError(String.Empty, error);
            }

            return(View(model));
        }
Ejemplo n.º 7
0
 private void DummyContactMergeMethod()
 {
     //DocSection:MergeContact
     ContactManagementContext.UpdateUserLoginContact(userName);
     //EndDocSection:MergeContact
 }