public ActionResult CompletedLogin(CompleteLoginModel model) { if (!_memeberShipService.IsUserRegistered(model.UserName.Trim())) { // If we got this far, something failed, redisplay form ModelState.AddModelError("", "User has not been registered."); return(View("FinishLogin", model)); } try { if (!_memeberShipService.AuthenticateUser(model.UserName.Trim(), model.DeviceResponse.Trim())) { throw new Exception("Device response did not work with user."); } FormsAuthentication.SetAuthCookie(model.UserName, true); return(RedirectToAction("Index", "Profile")); } catch (Exception e) { Console.WriteLine(e); ModelState.AddModelError("", "Error authenticating"); return(View("FinishLogin", model)); } }
public ActionResult CompletedLogin(CompleteLoginModel model) { if (!_memeberShipService.IsUserRegistered(model.UserName.Trim())) { // If we got this far, something failed, redisplay form ModelState.AddModelError("", "User has not been registered"); return(View("FinishLogin", model)); } try { if (_memeberShipService.AuthenticateUser(model.UserName.Trim(), model.DeviceResponse.Trim())) { return(View("CompletedLogin", model)); } } catch (Exception e) { Console.WriteLine(e); ModelState.AddModelError("", "Error finding challenge"); return(View("FinishLogin", model)); } return(View("FinishLogin", model)); }
public ActionResult BeginLogin(BeginLoginModel model) { if ((string.IsNullOrWhiteSpace(model.UserName) || string.IsNullOrWhiteSpace(model.Password)) || (!_memeberShipService.IsUserRegistered(model.UserName.Trim()) && !_memeberShipService.IsValidUserNameAndPassword(model.UserName.Trim(), model.Password.Trim()))) { // If we got this far, something failed, redisplay form ModelState.AddModelError("CustomError", "User has not been registered"); return(View("Login", model)); } try { ServerChallenge serverChallenge = _memeberShipService.GenerateServerChallenge(model.UserName.Trim()); CompleteLoginModel loginModel = new CompleteLoginModel { AppId = serverChallenge.AppId, KeyHandle = serverChallenge.KeyHandle, Version = serverChallenge.Version, Challenge = serverChallenge.Challenge, UserName = model.UserName.Trim() }; return(View("FinishLogin", loginModel)); } catch (Exception e) { Console.WriteLine(e); } ModelState.AddModelError("CustomError", "User has not been registered"); return(View("Login", model)); }
public void HomeController_CompletedLoginNoUsername() { _memeberShipService.Setup(s => s.IsUserRegistered(It.IsAny <string>())).Returns(false); HomeController homeController = new HomeController(_memeberShipService.Object); CompleteLoginModel beginLoginModel = new CompleteLoginModel { UserName = string.Empty }; ViewResult result = homeController.CompletedLogin(beginLoginModel) as ViewResult; Assert.IsNotNull(result); Assert.IsFalse(homeController.ModelState.IsValid); Assert.AreEqual("FinishLogin", result.ViewName); }
public void HomeController_CompletedLoginExceptionThrown() { _memeberShipService.Setup(s => s.AuthenticateUser(It.IsAny <string>(), It.IsAny <string>())).Throws(new Exception()); _memeberShipService.Setup(s => s.IsUserRegistered(It.IsAny <string>())).Returns(true); HomeController homeController = new HomeController(_memeberShipService.Object); CompleteLoginModel beginLoginModel = new CompleteLoginModel { UserName = "******" }; ViewResult result = homeController.CompletedLogin(beginLoginModel) as ViewResult; Assert.IsNotNull(result); Assert.IsFalse(homeController.ModelState.IsValid); Assert.AreEqual("FinishLogin", result.ViewName); }
public void HomeController_CompletedLoginWithUsername() { _memeberShipService.Setup(s => s.IsUserRegistered(It.Is <string>(p => p == "tester"))).Returns(true); _memeberShipService.Setup(s => s.AuthenticateUser(It.Is <string>(p => p == "tester"), It.Is <string>(p => p == "notrealdeviceresponse"))).Returns(true); HomeController homeController = new HomeController(_memeberShipService.Object); CompleteLoginModel beginLoginModel = new CompleteLoginModel { UserName = "******", DeviceResponse = "notrealdeviceresponse" }; var result = homeController.CompletedLogin(beginLoginModel) as RedirectToRouteResult; Assert.IsNotNull(result); Assert.AreEqual("Index", result.RouteValues["action"] as string); }
public void HomeController_CompletedLoginWithUsername() { _memeberShipService.Setup(s => s.IsUserRegistered(It.Is <string>(p => p == "tester"))).Returns(true); _memeberShipService.Setup(s => s.AuthenticateUser(It.Is <string>(p => p == "tester"), It.Is <string>(p => p == "notrealdeviceresponse"))).Returns(true); HomeController homeController = new HomeController(_memeberShipService.Object); CompleteLoginModel beginLoginModel = new CompleteLoginModel { UserName = "******", DeviceResponse = "notrealdeviceresponse" }; ViewResult result = homeController.CompletedLogin(beginLoginModel) as ViewResult; Assert.IsNotNull(result); Assert.IsTrue(homeController.ModelState.IsValid); Assert.AreEqual("CompletedLogin", result.ViewName); }
public ActionResult BeginLogin(BeginLoginModel model) { if ((string.IsNullOrWhiteSpace(model.Password)) || !_memeberShipService.IsUserRegistered(model.UserName.Trim())) { // If we got this far, something failed, redisplay form ModelState.AddModelError("CustomError", "User has not been registered."); return(View("Login", model)); } if (!_memeberShipService.IsValidUserNameAndPassword(model.UserName.Trim(), model.Password.Trim())) { ModelState.AddModelError("CustomError", "User/Password is not invalid."); return(View("Login", model)); } try { List <ServerChallenge> serverChallenge = _memeberShipService.GenerateServerChallenges(model.UserName.Trim()); if (serverChallenge == null || serverChallenge.Count == 0) { throw new Exception("No server challenges were generated."); } var challenges = JsonConvert.SerializeObject(serverChallenge); CompleteLoginModel loginModel = new CompleteLoginModel { AppId = serverChallenge.First().appId, Version = serverChallenge.First().version, UserName = model.UserName.Trim(), Challenges = challenges }; return(View("FinishLogin", loginModel)); } catch (Exception e) { Console.WriteLine(e); ModelState.AddModelError("CustomError", e.Message); return(View("Login", model)); } }