diff --git a/src/Umbraco.Web/Controllers/LoginController.cs b/src/Umbraco.Web/Controllers/LoginController.cs index df6675dfd8..563d15a281 100644 --- a/src/Umbraco.Web/Controllers/LoginController.cs +++ b/src/Umbraco.Web/Controllers/LoginController.cs @@ -1,5 +1,6 @@ using System.Linq; using System.Web.Mvc; +using System.Web.Security; using umbraco.cms.businesslogic.member; using Umbraco.Web.Models; using Umbraco.Web.Mvc; @@ -11,18 +12,28 @@ namespace Umbraco.Web.Controllers [HttpPost] public ActionResult HandleLogin([Bind(Prefix="loginModel")]LoginModel model) { - // TODO: Use new Member API - if (ModelState.IsValid) + if (ModelState.IsValid == false) { - var m = Member.GetMemberFromLoginNameAndPassword(model.Username, model.Password); - if (m != null) - { - Member.AddMemberToCache(m); - return Redirect("/"); - } + return CurrentUmbracoPage(); } - return CurrentUmbracoPage(); + //Validate credentials + if (Membership.ValidateUser(model.Username, model.Password) == false) + { + ModelState.AddModelError("Username", "Invalid username or password"); + return CurrentUmbracoPage(); + } + //Set member online + var member = Membership.GetUser(model.Username, true); + if (member == null) + { + ModelState.AddModelError("Username", "Member not found"); + return CurrentUmbracoPage(); + } + //Log them in + FormsAuthentication.SetAuthCookie(member.UserName, true); + + return Redirect("/"); } } }