aboutsummaryrefslogtreecommitdiff
path: root/Libs/VNLib.Plugins.Essentials.Sessions.VNCache/IWebSessionIdFactory.cs
blob: 81f44b8576d9cabc21c5b984c3105a02aa59992e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

using VNLib.Net.Http;

namespace VNLib.Plugins.Essentials.Sessions.VNCache
{
    /// <summary>
    /// Id factory for <see cref="WebSessionProvider"/>
    /// </summary>
    internal interface IWebSessionIdFactory: ISessionIdFactory
    {
        /// <summary>
        /// The maxium amount of time a session is valid for. Sessions will be invalidated
        /// after this time
        /// </summary>
        TimeSpan ValidFor { get; }

        /// <summary>
        /// Gets a new session-id for the connection and manipulates the entity as necessary
        /// </summary>
        /// <param name="entity">The connection to generate the new session for</param>
        /// <returns>The new session-id</returns>
        string GenerateSessionId(IHttpEvent entity);
    }

    
}