Interface IServerSideSessionStore
- Namespace
- Fdyay.IdentityServer.Stores
- Assembly
- Fdyay.IdentityServer.Core.dll
Stores sessions where the server can find them again.
public interface IServerSideSessionStore
Methods
CreateSessionAsync(ServerSideSession, CancellationToken)
Stores a session under its Key, replacing any already held under that key.
Task CreateSessionAsync(ServerSideSession session, CancellationToken cancellationToken = default)
Parameters
sessionServerSideSessionThe session.
cancellationTokenCancellationTokenCancels the write.
Returns
DeleteSessionAsync(string, CancellationToken)
Removes the session stored under a key. A key with nothing stored under it is not an error.
Task DeleteSessionAsync(string key, CancellationToken cancellationToken = default)
Parameters
keystringThe session's Key.
cancellationTokenCancellationTokenCancels the removal.
Returns
DeleteSessionsAsync(SessionFilter, CancellationToken)
Ends every session matching the filter.
Task DeleteSessionsAsync(SessionFilter filter, CancellationToken cancellationToken = default)
Parameters
filterSessionFiltercancellationTokenCancellationToken
Returns
GetAndRemoveExpiredSessionsAsync(int, CancellationToken)
Removes sessions past their expiry and returns them, so a caller can act on what it removed.
Task<IReadOnlyCollection<ServerSideSession>> GetAndRemoveExpiredSessionsAsync(int count, CancellationToken cancellationToken = default)
Parameters
countintcancellationTokenCancellationToken
Returns
Remarks
Returns rather than merely deletes because an expired session still has clients that were signed in to it, and they are owed a back-channel logout. A sweep that deleted silently would leave every relying party believing a session that ended hours ago is still live.
GetSessionAsync(string, CancellationToken)
The session stored under a key, or null.
Task<ServerSideSession?> GetSessionAsync(string key, CancellationToken cancellationToken = default)
Parameters
keystringThe session's Key.
cancellationTokenCancellationTokenCancels the read.
Returns
- Task<ServerSideSession>
The session, or null when none is stored under that key.
GetSessionsAsync(SessionFilter, CancellationToken)
Every session matching the filter.
Task<IReadOnlyCollection<ServerSideSession>> GetSessionsAsync(SessionFilter filter, CancellationToken cancellationToken = default)
Parameters
filterSessionFiltercancellationTokenCancellationToken
Returns
QuerySessionsAsync(SessionQuery, CancellationToken)
A page of sessions, for an administrative list.
Task<QueryResult<ServerSideSession>> QuerySessionsAsync(SessionQuery query, CancellationToken cancellationToken = default)
Parameters
querySessionQuerycancellationTokenCancellationToken
Returns
UpdateSessionAsync(ServerSideSession, CancellationToken)
Replaces the session stored under its Key, or stores it when none is.
Task UpdateSessionAsync(ServerSideSession session, CancellationToken cancellationToken = default)
Parameters
sessionServerSideSessionThe session as it now stands.
cancellationTokenCancellationTokenCancels the write.