示例#1
0
        protected override void Test()
        {
            Application.Execute((client, context) =>
            {
                // Arrange.
                const string Username = "******";
                const string Password = "******";

                // Save user to database.
                context.User(Username, Password);

                var form = new LoginForm
                {
                    Username = Username,
                    Password = Password
                };

                var view = new CrowbarViewContext("_LoginForm").SetAnonymousPrincipal();

                // Act.
                var response = client.Render(view, form).Submit();

                // Assert.
                response.ShouldHaveTemporarilyRedirectTo(AppRoute.App);
                response.ShouldHaveCookie(FormsAuthentication.FormsCookieName);
            });
        }
示例#2
0
        public ActionResult Login(LoginForm form)
        {
            var user = NHibernateSession.QueryOver<User>().Where(x => x.Username == form.Username).SingleOrDefault();
            if (user != null && user.Password.IsValid(form.Password))
            {
                FormsAuthentication.SetAuthCookie("admin", false);
                return Redirect(AppRoute.App);
            }

            return Redirect(AppRoute.Root);
        }
示例#3
0
        protected override void Test()
        {
            Application.Execute((client, context) =>
            {
                // Arrange.
                const string Username = "******";
                const string Password = "******";

                var form = new LoginForm
                {
                    Username = Username,
                    Password = Password
                };

                // Save user to database.
                context.User(Username, Password);

                var view = new CrowbarViewContext("_LoginForm");
                view.SetFormsAuthPrincipal("invalid"); // simulate invalid anti-forgery request token.

                // Act.
                // Obviously the MVC application should handle this more gracefully, this is just an example.
                var exception = Assert.Throws<CrowbarException>(() => client.Render(view, form).Submit());

                // Assert.
                Assert.That(exception.InnerException, Is.TypeOf<HttpAntiForgeryException>());
            });
        }
示例#4
0
        protected override void Test()
        {
            Application.Execute((client, context) =>
            {
                // Arrange.
                var form = new LoginForm
                {
                    Username = "******",
                    Password = "******"
                };

                // Act.
                var response = client.Render("_LoginForm", form).Submit();

                // Assert.
                response.ShouldHaveTemporarilyRedirectTo(AppRoute.Root);
            });
        }