コード例 #1
0
        static void Main(string[] args)
        {
            // determine root folder for saving session data
            var path = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "SessionState");

            var sessionStateSerializer = new SessionStateProtector(new BinarySessionStateSerializer());

            var sessionStorage = new FileSessionStorage(new SystemDirectory(), new SystemFile(), sessionStateSerializer, path);

            // create Session for generating correct session key
            var sessionMananager = new SessionManager(sessionStorage, new SystemProcessIdProvider());

            // create state manager
            var stateManager = new StateManager(sessionMananager);

            if (args.Length == 2)
            {
                // read a value from state
                var scope = Enum.Parse <StateScope>(args[0]);
                Console.WriteLine($"Value for {args[1]} : {stateManager.GetValue<string>(scope, args[1], "")}");
            }
            else if (args.Length == 3)
            {
                // set a value to state
                var scope = Enum.Parse <StateScope>(args[0]);
                stateManager.SetValue(scope, args[1], args[2]);
                stateManager.Save();
                Console.WriteLine($"Setting value for {args[1]} to {args[2]}");
            }
        }
コード例 #2
0
        public void SSP001()
        {
            // arrange
            var sessionState = new Dictionary <string, object>()
            {
                { "one", 1 }
            };

            var sessionSerializer     = new BinarySessionStateSerializer();
            var sessionStateProtector = new SessionStateProtector(sessionSerializer);

            var protectedSessionState = sessionStateProtector.Serialize(sessionState);

            Action action = () => sessionSerializer.Deserialize(protectedSessionState);

            // act, assert
            action.Should().Throw <System.Runtime.Serialization.SerializationException>();
        }
コード例 #3
0
        public void SSP002()
        {
            // arrange
            var sessionState = new Dictionary <string, object>()
            {
                { "one", 1 }
            };

            var sessionSerializer     = new BinarySessionStateSerializer();
            var sessionStateProtector = new SessionStateProtector(sessionSerializer);

            var protectedSessionState = sessionStateProtector.Serialize(sessionState);

            // act
            var deserializedSessionState = sessionStateProtector.Deserialize(protectedSessionState);

            // assert
            var expectedSessionState = new Dictionary <string, object>()
            {
                { "one", 1 }
            };

            deserializedSessionState.Should().BeEquivalentTo(expectedSessionState);
        }