Example #1
0
        public ActionResult Index(LogonInputModel input)
        {
            if (!ModelState.IsValid)
            {
                return Index();
            }

            var logonUser = _db.SingleOrDefault<LogonUser>(@"select u.UserId, s.password from Users u inner join UserSecurityInfo s on s.UserId = u.UserId where u.UserName = @0", input.Username);

            if (logonUser != null)
            {
                if (Crypto.VerifyHashedPassword(logonUser.Password, input.Password))
                {
                    //FormsAuthentication.SetAuthCookie(logonUser.UserId.ToString(), input.RememberMe);
                    _auth.SetAuthCookie(logonUser.UserId.ToString(), input.RememberMe);
                    if (!string.IsNullOrEmpty(input.ReturnUrl))
                        return Redirect(input.ReturnUrl);
                    else
                        return RedirectToAction("Index", "Home");
                }
            }

            ModelState.AddModelError("", "Failed to login, you have.");

            return Index();
        }
Example #2
0
        public void WhenInvalidUserNameSpecified()
        {
            // Arrange
            var dbmock = new Mock<IDatabase>();
            var forms = new Mock<IAuthentication>();
            var controller = CB.Of(new LogonController(dbmock.Object, forms.Object)).Build();
            var model = new LogonInputModel {Username = "", Password = "", RememberMe = true, ReturnUrl = ""};

            // Act
            var result = controller.Index(model) as ViewResult;

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(false, controller.ModelState.IsValid);
        }
Example #3
0
        public void WhenValidUserNameAndPasswordSpecifiedWithReturnUrl()
        {
            // Arrange
            var dbmock = new Mock<IDatabase>();
            var forms = new Mock<IAuthentication>();
            dbmock.Setup(x => x.SingleOrDefault<LogonController.LogonUser>(It.IsAny<string>(), It.IsAny<string>())).Returns(new LogonController.LogonUser() { UserId = 1, Password = "******" });
            var controller = CB.Of(new LogonController(dbmock.Object, forms.Object)).Build();

            var model = new LogonInputModel { Username = "******", Password = "******", RememberMe = true, ReturnUrl = "blah/blah" };

            // Act
            var result = controller.Index(model) as RedirectResult;

            // Assert
            Assert.AreEqual("blah/blah", result.Url);
            forms.Verify(x => x.SetAuthCookie(It.IsAny<string>(), It.IsAny<bool>()), Times.Once());
        }