public ActionResult Innlogging(AdminInnlogging innlogging) { if (!ModelState.IsValid) { return View(); } var epost = innlogging.Epost; var passord = innlogging.Passord; var hash = Crypto.LagHash(passord); var innloggetAdmin = _adminLogikk.Autentiser(epost, hash); if (innloggetAdmin == null) { ModelState.AddModelError("", "Feil epost/passord."); return View(); } Session["AdminInnlogget"] = true; Session["AdminBruker"] = innloggetAdmin; /*var cookie = new HttpCookie("AdminBrukerID") { Expires = DateTime.Now.AddYears(1), Value = innloggetAdmin.ID.ToString() }; Response.Cookies.Add(cookie);*/ return RedirectToAction("Kontrollpanel"); }
public void Innlogging_POST_feil() { // Arrange var controller = new AdminController(new AdminLogikk(new AdminRepositoryStub())); var innloggingsmodell = new AdminInnlogging(); controller.ModelState.AddModelError("Epost", "Epost mangler."); controller.ModelState.AddModelError("Passord", "Passord mangler."); // Act var result = (ViewResult)controller.Innlogging(innloggingsmodell); // Assert Assert.IsTrue(result.ViewData.ModelState.Count == 2); Assert.AreEqual(result.ViewName, ""); }
public void Innlogging_POST_ok() { // Arrange var controller = new AdminController(new AdminLogikk(new AdminRepositoryStub())); var builder = new TestControllerBuilder(); builder.InitializeController(controller); var innloggingsmodell = new AdminInnlogging() { Epost = "*****@*****.**", Passord = "admin" }; var hashPassord = Crypto.LagHash(innloggingsmodell.Passord); // Act var result = (RedirectToRouteResult)controller.Innlogging(innloggingsmodell); var innloggetAdminBruker = (AdminBruker)controller.Session["AdminBruker"]; // Assert Assert.AreEqual(controller.Session["AdminInnlogget"], true); Assert.AreEqual(innloggetAdminBruker.Epost, innloggingsmodell.Epost); for (var i = 0; i < innloggetAdminBruker.Passord.Length; i++) { Assert.AreEqual(innloggetAdminBruker.Passord[i], hashPassord[i]); } Assert.AreEqual(result.RouteName, ""); Assert.AreEqual(result.RouteValues.Values.First(), "Kontrollpanel"); }