public ActionResult LogOnForm() { var viewModel = new LogOnViewModel(); // See if a return url is present or not and add it var returnUrl = Request["ReturnUrl"]; if (!string.IsNullOrEmpty(returnUrl)) { viewModel.ReturnUrl = returnUrl; } return View(PathHelper.GetThemePartialViewPath("LogOnForm"), viewModel); }
public ActionResult LogOn(LogOnViewModel model) { try { if (ModelState.IsValid) { var message = new GenericMessageViewModel(); var user = new Member(); if (ServiceFactory.MemberService.Login(model.UserName, model.Password)) { // Set last login date user = ServiceFactory.MemberService.Get(model.UserName); if (user.IsApproved && !user.IsLockedOut) { if (Url.IsLocalUrl(model.ReturnUrl) && model.ReturnUrl.Length > 1 && model.ReturnUrl.StartsWith("/") && !model.ReturnUrl.StartsWith("//") && !model.ReturnUrl.StartsWith("/\\")) { return Redirect(model.ReturnUrl); } message.Message = Lang("Members.NowLoggedIn"); message.MessageType = GenericMessages.Success; return RedirectToUmbracoPage(Dialogue.Settings().ForumId); } } // Only show if we have something to actually show to the user if (!string.IsNullOrEmpty(message.Message)) { ShowMessage(message); } else { if (user.IsApproved) { ModelState.AddModelError(string.Empty, Lang("Members.Errors.NotApproved")); } else if (user.IsLockedOut) { ModelState.AddModelError(string.Empty, Lang("Members.Errors.LockedOut")); } else { ModelState.AddModelError(string.Empty, Lang("Members.Errors.LogonGeneric")); } } } else { ModelState.AddModelError(string.Empty, Lang("Members.Errors.LogonGeneric")); } } catch (Exception ex) { LogError("Error when user logging in", ex); } // Hack to show form validation ShowModelErrors(); return CurrentUmbracoPage(); }