/// <summary> /// Initializes a new instance of the <see cref="CookieBasedSessions"/> class. /// </summary> /// <param name="encryptionProvider">The encryption provider.</param> /// <param name="hmacProvider">The hmac provider</param> /// <param name="objectSerializer">Session object serializer to use</param> public CookieBasedSessions(IEncryptionProvider encryptionProvider, IHmacProvider hmacProvider, IObjectSerializer objectSerializer) { this.currentConfiguration = new CookieBasedSessionsConfiguration { Serializer = objectSerializer, CryptographyConfiguration = new CryptographyConfiguration(encryptionProvider, hmacProvider) }; }
/// <summary> /// Initialise and add cookie based session hooks to the application pipeline /// </summary> /// <param name="pipelines">Application pipelines</param> /// <param name="cryptographyConfiguration">Cryptography configuration</param> /// <returns>Formatter selector for choosing a non-default serializer</returns> public static IObjectSerializerSelector Enable(IPipelines pipelines, CryptographyConfiguration cryptographyConfiguration) { var cookieBasedSessionsConfiguration = new CookieBasedSessionsConfiguration(cryptographyConfiguration) { Serializer = new DefaultObjectSerializer() }; return(Enable(pipelines, cookieBasedSessionsConfiguration)); }
public CookieBasesSessionsConfigurationFixture() { var cryptographyConfiguration = new CryptographyConfiguration( new RijndaelEncryptionProvider(new PassphraseKeyGenerator("SuperSecretPass", new byte[] { 1, 2, 3, 4, 5, 6, 7, 8 })), new DefaultHmacProvider(new PassphraseKeyGenerator("UberSuperSecure", new byte[] { 1, 2, 3, 4, 5, 6, 7, 8 }))); this.config = new CookieBasedSessionsConfiguration() { CryptographyConfiguration = cryptographyConfiguration, Serializer = A.Fake<IObjectSerializer>() }; }
/// <summary> /// Initializes a new instance of the <see cref="CookieBasedSessions"/> class. /// </summary> /// <param name="configuration">Cookie based sessions configuration.</param> public CookieBasedSessions(CookieBasedSessionsConfiguration configuration) { if (configuration == null) { throw new ArgumentNullException("configuration"); } if (!configuration.IsValid) { throw new ArgumentException("Configuration is invalid", "configuration"); } this.currentConfiguration = configuration; }
/// <summary> /// Initialise and add cookie based session hooks to the application pipeline /// </summary> /// <param name="pipelines">Application pipelines</param> /// <param name="configuration">Cookie based sessions configuration.</param> /// <returns>Formatter selector for choosing a non-default serializer</returns> public static IObjectSerializerSelector Enable(IPipelines pipelines, CookieBasedSessionsConfiguration configuration) { if (pipelines == null) { throw new ArgumentNullException("pipelines"); } var sessionStore = new CookieBasedSessions(configuration); pipelines.BeforeRequest.AddItemToStartOfPipeline(ctx => LoadSession(ctx, sessionStore)); pipelines.AfterRequest.AddItemToEndOfPipeline(ctx => SaveSession(ctx, sessionStore)); return sessionStore; }
/// <summary> /// Initialise and add cookie based session hooks to the application pipeline /// </summary> /// <param name="pipelines">Application pipelines</param> /// <param name="configuration">Cookie based sessions configuration.</param> /// <returns>Formatter selector for choosing a non-default serializer</returns> public static IObjectSerializerSelector Enable(IPipelines pipelines, CookieBasedSessionsConfiguration configuration) { if (pipelines == null) { throw new ArgumentNullException("pipelines"); } var sessionStore = new CookieBasedSessions(configuration); pipelines.BeforeRequest.AddItemToStartOfPipeline(ctx => LoadSession(ctx, sessionStore)); pipelines.AfterRequest.AddItemToEndOfPipeline(ctx => SaveSession(ctx, sessionStore)); return(sessionStore); }
public void Should_set_Path_when_config_provides_path_value() { //Given var cryptoConfig = new CryptographyConfiguration(this.fakeEncryptionProvider, this.fakeHmacProvider); var storeConfig = new CookieBasedSessionsConfiguration(cryptoConfig) { Path = "/", Serializer = this.fakeObjectSerializer }; var store = new CookieBasedSessions(storeConfig); //When var response = new Response(); var session = new Session(new Dictionary<string, object> { {"key1", "val1"}, }); session["key2"] = "val2"; store.Save(session, response); //Then var cookie = response.Cookies.First(c => c.Name == storeConfig.CookieName); cookie.Path.ShouldEqual(storeConfig.Path); }
public void Should_use_CookieName_when_config_provides_cookiename_value() { //Given var cryptoConfig = new CryptographyConfiguration(this.fakeEncryptionProvider, this.fakeHmacProvider); var storeConfig = new CookieBasedSessionsConfiguration(cryptoConfig) { CookieName = "NamedCookie", Serializer = this.fakeObjectSerializer }; var store = new CookieBasedSessions(storeConfig); //When var response = new Response(); var session = new Session(new Dictionary<string, object> { {"key1", "val1"}, }); session["key2"] = "val2"; store.Save(session, response); //Then response.Cookies.ShouldHave(c => c.Name == storeConfig.CookieName); }
/// <summary> /// Initialise and add cookie based session hooks to the application pipeline /// </summary> /// <param name="pipelines">Application pipelines</param> /// <param name="cryptographyConfiguration">Cryptography configuration</param> /// <returns>Formatter selector for choosing a non-default serializer</returns> public static IObjectSerializerSelector Enable(IPipelines pipelines, CryptographyConfiguration cryptographyConfiguration) { var cookieBasedSessionsConfiguration = new CookieBasedSessionsConfiguration(cryptographyConfiguration) { Serializer = new DefaultObjectSerializer() }; return Enable(pipelines, cookieBasedSessionsConfiguration); }