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