Example #1
0
        public virtual async Task <ActionResult> LinkLoginCallback(string provider, string returnUrl)
        {
            string alert     = null;
            var    loginInfo = await _queries.Execute(new PrincipalRemoteMembershipTicket(User));

            if (loginInfo == null)
            {
                alert = string.Format("There was an error adding your **{0}** login, please try again.",
                                      provider);
            }
            var command = new CreateRemoteMembership {
                Principal = User
            };
            var validationResult = _validation.Validate(command);

            if (!validationResult.IsValid)
            {
                alert = string.Format("There was an error adding your **{0}** login: {1}",
                                      provider, validationResult.Errors
                                      .First(x => !string.IsNullOrWhiteSpace(x.ErrorMessage)).ErrorMessage);
            }
            if (!string.IsNullOrWhiteSpace(alert))
            {
                TempData.Alerts(alert, AlertFlavor.Danger, true);
                return(RedirectToAction(await MVC.UserLogins.Index()));
            }

            await _commands.Execute(command);

            alert = string.Format("Your **{0}** login was added successfully.", provider);
            TempData.Alerts(alert, AlertFlavor.Success, true);
            return(RedirectToAction(await MVC.UserLogins.Index()));
        }
Example #2
0
        public virtual async Task<ActionResult> LinkLoginCallback(string provider, string returnUrl)
        {
            string alert = null;
            var loginInfo = await _queries.Execute(new PrincipalRemoteMembershipTicket(User));
            if (loginInfo == null)
            {
                alert = string.Format("There was an error adding your **{0}** login, please try again.",
                    provider);
            }
            var command = new CreateRemoteMembership { Principal = User };
            var validationResult = _validation.Validate(command);
            if (!validationResult.IsValid)
            {
                alert = string.Format("There was an error adding your **{0}** login: {1}",
                    provider, validationResult.Errors
                        .First(x => !string.IsNullOrWhiteSpace(x.ErrorMessage)).ErrorMessage);
            }
            if (!string.IsNullOrWhiteSpace(alert))
            {
                TempData.Alerts(alert, AlertFlavor.Danger, true);
                return RedirectToAction(await MVC.UserLogins.Index());
            }

            await _commands.Execute(command);
            alert = string.Format("Your **{0}** login was added successfully.", provider);
            TempData.Alerts(alert, AlertFlavor.Success, true);
            return RedirectToAction(await MVC.UserLogins.Index());
        }
        public virtual async Task<ActionResult> Post(CreateRemoteMembership command, string returnUrl, string emailAddress)
        {
            //System.Threading.Thread.Sleep(new Random().Next(5000, 5001));

            // make sure we still have a remote login
            var loginInfo = await _queries.Execute(new PrincipalRemoteMembershipTicket(User));
            if (loginInfo == null)
                return RedirectToAction(MVC.SignIn.Index());

            if (command == null || string.IsNullOrWhiteSpace(emailAddress))
                return View(MVC.Errors.Views.BadRequest);

            if (!ModelState.IsValid)
            {
                var emailClaim = await _queries.Execute(new ExternalCookieClaim(ClaimTypes.Email));
                ViewBag.EmailAddress = emailAddress;
                ViewBag.LoginProvider = loginInfo.Login.LoginProvider;
                ViewBag.HasClaimsEmail = emailClaim != null;
                ViewBag.Token = command.Token;
                ViewBag.Ticket = command.Ticket;
                ViewBag.ReturnUrl = returnUrl;
                return View(MVC.Security.Views.SignOn.CreateUser, command);
            }

            await _commands.Execute(command);

            var signOn = new SignOn
            {
                Principal = User,
            };
            await _commands.Execute(signOn);
            Session.VerifyEmailTickets(null);
            Response.ClientCookie(signOn.SignedOn.Id, _queries);
            return this.RedirectToLocal(returnUrl, await MVC.UserName.Index());
        }
Example #4
0
        public virtual ActionResult Validate(CreateRemoteMembership command, string fieldName = null)
        {
            //System.Threading.Thread.Sleep(new Random().Next(5000, 5001));

            if (command == null)
            {
                Response.StatusCode = 400;
                return(Json(null));
            }

            var result = new ValidatedFields(ModelState, fieldName);

            //ModelState[command.PropertyName(x => x.UserName)].Errors.Clear();
            //result = new ValidatedFields(ModelState, fieldName);

            return(new CamelCaseJsonResult(result));
        }
        public virtual ActionResult Validate(CreateRemoteMembership command, string fieldName = null)
        {
            //System.Threading.Thread.Sleep(new Random().Next(5000, 5001));

            if (command == null)
            {
                Response.StatusCode = 400;
                return Json(null);
            }

            var result = new ValidatedFields(ModelState, fieldName);

            //ModelState[command.PropertyName(x => x.UserName)].Errors.Clear();
            //result = new ValidatedFields(ModelState, fieldName);

            return new CamelCaseJsonResult(result);
        }
Example #6
0
        public virtual async Task <ActionResult> Post(CreateRemoteMembership command, string returnUrl, string emailAddress)
        {
            //System.Threading.Thread.Sleep(new Random().Next(5000, 5001));

            // make sure we still have a remote login
            var loginInfo = await _queries.Execute(new PrincipalRemoteMembershipTicket(User));

            if (loginInfo == null)
            {
                return(RedirectToAction(MVC.SignIn.Index()));
            }

            if (command == null || string.IsNullOrWhiteSpace(emailAddress))
            {
                return(View(MVC.Errors.Views.BadRequest));
            }

            if (!ModelState.IsValid)
            {
                var emailClaim = await _queries.Execute(new ExternalCookieClaim(ClaimTypes.Email));

                ViewBag.EmailAddress   = emailAddress;
                ViewBag.LoginProvider  = loginInfo.Login.LoginProvider;
                ViewBag.HasClaimsEmail = emailClaim != null;
                ViewBag.Token          = command.Token;
                ViewBag.Ticket         = command.Ticket;
                ViewBag.ReturnUrl      = returnUrl;
                return(View(MVC.Security.Views.SignOn.CreateUser, command));
            }

            await _commands.Execute(command);

            var signOn = new SignOn
            {
                Principal = User,
            };
            await _commands.Execute(signOn);

            Session.VerifyEmailTickets(null);
            Response.ClientCookie(signOn.SignedOn.Id, _queries);
            return(this.RedirectToLocal(returnUrl, await MVC.UserName.Index()));
        }