示例#1
0
        public void SerializeEmptyTest()
        {
            List <FlashMessageModel> messages = new List <FlashMessageModel>();
            var data = FlashMessage.Serialize(messages);

            messages = FlashMessage.Deserialize(data);

            Assert.Equal(0, messages.Count);
        }
示例#2
0
        public void Queue(IList <FlashMessageModel> messages)
        {
            // Serialize the messages.
            var data = FlashMessage.Serialize(messages);

            // Set the data without doing any further securing or transformations.
            var context = new HttpContextWrapper(HttpContext.Current);

            context.Session[KeyName] = data;
        }
        public void Queue(IList <FlashMessageModel> messages)
        {
            // Serialize and digitally sign the data.
            // Encoding/signing is done using the configured encryption and key in the machineKey element.
            // TODO: Replace with MachineKey.Protect for .Net Framework >= 4.5
            var serializedMessages = FlashMessage.Serialize(messages);
            var data = MachineKey.Encode(serializedMessages, MachineKeyProtection.All);

            // Serialize messages and enforce cookie size limit.
            if (data.Length > CookieSizeLimit && CookieSizeLimit > 0)
            {
                throw new InvalidOperationException("The flash messages cookie size limit exceeded the limit value. Queue less messages.");
            }

            // Set the cookie.
            var context = new HttpContextWrapper(HttpContext.Current);
            var cookie  = new HttpCookie(CookieName, data);

            context.Response.SetCookie(cookie);
        }
示例#4
0
        public void SerializeSingleTest()
        {
            List <FlashMessageModel> messages = new List <FlashMessageModel>();
            FlashMessageModel        message  = new FlashMessageModel
            {
                IsHtml  = true,
                Message = "<p>test content</p> üñï€ode",
                Title   = "Title",
                Type    = FlashMessageType.Custom
            };

            // Serialize and deserialize.
            messages.Add(message);
            var data = FlashMessage.Serialize(messages);

            messages = FlashMessage.Deserialize(data);
            var deserialized = messages[0];

            // Compare the results.
            Assert.Equal(message.Type, deserialized.Type);
            Assert.Equal(message.Title, deserialized.Title);
            Assert.Equal(message.Message, deserialized.Message);
            Assert.Equal(message.IsHtml, message.IsHtml);
        }