Пример #1
0
        public void Should_return_blank_session_if_encrypted_data_modified()
        {
            var inputValue = ValidHmac + ValidData.Substring(0, ValidData.Length - 1) + "Z";

            inputValue = HttpUtility.UrlEncode(inputValue);
            var store   = new CookieBasedSessions(new DefaultEncryptionProvider(), new DefaultHmacProvider(), ValidDataPass, ValidDataSalt, ValidDataHmacPassphrase, new DefaultSessionObjectFormatter());
            var request = new Request("GET", "/", "http");

            request.Cookies.Add(CookieBasedSessions.GetCookieName(), inputValue);

            var result = store.Load(request);

            result.Count.ShouldEqual(0);
        }
        public void Should_return_blank_session_if_hmac_missing()
        {
            var inputValue = ValidData;

            inputValue = HttpUtility.UrlEncode(inputValue);
            var store   = new CookieBasedSessions(this.rijndaelEncryptionProvider, this.defaultHmacProvider, new DefaultObjectSerializer());
            var request = new Request("GET", "/", "http");

            request.Cookies.Add(CookieBasedSessions.GetCookieName(), inputValue);

            var result = store.Load(request);

            result.Count.ShouldEqual(0);
        }
Пример #3
0
        public void Should_load_valid_test_data()
        {
            var inputValue = ValidHmac + ValidData;

            inputValue = HttpUtility.UrlEncode(inputValue);
            var store   = new CookieBasedSessions(new DefaultEncryptionProvider(), new DefaultHmacProvider(), ValidDataPass, ValidDataSalt, ValidDataHmacPassphrase, new DefaultSessionObjectFormatter());
            var request = new Request("GET", "/", "http");

            request.Cookies.Add(CookieBasedSessions.GetCookieName(), inputValue);

            var result = store.Load(request);

            result.Count.ShouldEqual(1);
            result.First().Value.ShouldBeOfType(typeof(DefaultSessionObjectFormatterFixture.Payload));
        }
        private Request CreateRequest(string sessionValue, bool load = true)
        {
            var headers = new Dictionary <string, IEnumerable <string> >(1);

            if (!string.IsNullOrEmpty(sessionValue))
            {
                headers.Add("cookie", new[] { CookieBasedSessions.GetCookieName() + "=" + HttpUtility.UrlEncode(sessionValue) });
            }

            var request = new Request("GET", "http://goku.power:9001/", headers, CreateRequestStream(), "http");

            if (load)
            {
                cookieStore.Load(request);
            }

            return(request);
        }
        public void Should_be_able_to_save_a_complex_object_to_session()
        {
            var response = new Response();
            var session  = new Session(new Dictionary <string, object>());
            var payload  = new DefaultSessionObjectFormatterFixture.Payload(27, true, "Test string");
            var store    = new CookieBasedSessions(this.rijndaelEncryptionProvider, this.defaultHmacProvider, new DefaultObjectSerializer());

            session["testObject"] = payload;

            store.Save(session, response);

            response.Cookies.Count.ShouldEqual(1);
            var cookie = response.Cookies.First();

            cookie.Name.ShouldEqual(CookieBasedSessions.GetCookieName());
            cookie.Value.ShouldNotBeNull();
            cookie.Value.ShouldNotBeEmpty();
        }
        public void Should_save_the_session_cookie()
        {
            var response = new Response();
            var session  = new Session(new Dictionary <string, object>
            {
                { "key1", "val1" },
            });

            session["key2"] = "val2";
            A.CallTo(() => this.fakeEncryptionProvider.Encrypt("key1=val1;key2=val2;")).Returns("encrypted=key1=val1;key2=val2;");

            cookieStore.Save(session, response);

            response.Cookies.Count.ShouldEqual(1);
            var cookie = response.Cookies.First();

            cookie.Name.ShouldEqual(CookieBasedSessions.GetCookieName());
            cookie.Value.ShouldEqual("encrypted=key1=val1;key2=val2;");
            cookie.Expires.ShouldBeNull();
            cookie.Path.ShouldBeNull();
            cookie.Domain.ShouldBeNull();
        }