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> 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()); }
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); }
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())); }