public ActionResult LoginForm(LoginModel model)
        {
            model.Username = model.Username.Trim();
            model.Password = model.Password.Trim();
            var provider = Membership.Providers.GetBackOfficeMembershipProvider();
            if (provider.ValidateUser(model.Username, model.Password))
            {
                if (provider.IsDefaultBackOfficeMembershipProvider())
                {
                    var umpProvider = (BackOfficeMembershipProvider)provider;
                    var umbracoUser = umpProvider.GetUmbracoUser(model.Username, false);
                    HttpContext.CreateUmbracoAuthTicket(umbracoUser);

                    //check if the ReturnUrl is specified in the route
                    var redirectUrl = HttpContext.Request["ReturnUrl"];
                    if (!string.IsNullOrEmpty(redirectUrl) &&
                        !(redirectUrl.StartsWith("http") && !redirectUrl.StartsWith(HttpContext.Request.Url.Scheme + "://" + HttpContext.Request.Url.Authority)))
                    {
                        return Redirect(HttpContext.Request["ReturnUrl"]);
                    }

                    //check if it is an overlay login (auth timeout)
                    if (model.DisplayType == LoginDisplayType.DisplayingOverlay)
                    {
                        return View("LoginOverlaySuccess");
                    }

                    return RedirectToAction("App");
                }
            }

            ModelState.AddModelError("Login.Invalid", "Login.Invalid".Localize(this));

            return View(model);
        }
Esempio n. 2
0
        public ActionResult LoginForm(LoginModel model)
        {
            model.Username = model.Username.Trim();
            model.Password = model.Password.Trim();

            var membershipService = BackOfficeRequestContext.Application.Security.Users;
            
            if (membershipService.Validate(model.Username, model.Password))
            {
                var user = membershipService.GetByUsername(model.Username, false);

                var userData = BackOfficeRequestContext.Application.FrameworkContext.TypeMappers.Map<UserData>(user);

                HttpContext.CreateUmbracoAuthTicket(userData);

                //check if the ReturnUrl is specified in the route
                    var redirectUrl = HttpContext.Request["ReturnUrl"];
                    if (!string.IsNullOrEmpty(redirectUrl) &&
                        !(redirectUrl.StartsWith("http") && !redirectUrl.StartsWith(HttpContext.Request.Url.Scheme + "://" + HttpContext.Request.Url.Authority)))
                {
                    return Redirect(HttpContext.Request["ReturnUrl"]);
                }

                    //check if it is an overlay login (auth timeout)
                    if (model.DisplayType == LoginDisplayType.DisplayingOverlay)
                    {
                        return View("LoginOverlaySuccess");
                    }

                return RedirectToAction("App");
            }

            ModelState.AddModelError("Login.Invalid", "Login.Invalid".Localize(this));

            return View(model);
        }