Esempio n. 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());
        }
Esempio n. 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);
        }
Esempio n. 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());
        }