Table of Contents

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

session ServerSideSession

The session.

cancellationToken CancellationToken

Cancels the write.

Returns

Task

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

key string

The session's Key.

cancellationToken CancellationToken

Cancels the removal.

Returns

Task

DeleteSessionsAsync(SessionFilter, CancellationToken)

Ends every session matching the filter.

Task DeleteSessionsAsync(SessionFilter filter, CancellationToken cancellationToken = default)

Parameters

filter SessionFilter
cancellationToken CancellationToken

Returns

Task

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

count int
cancellationToken CancellationToken

Returns

Task<IReadOnlyCollection<ServerSideSession>>

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

key string

The session's Key.

cancellationToken CancellationToken

Cancels 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

filter SessionFilter
cancellationToken CancellationToken

Returns

Task<IReadOnlyCollection<ServerSideSession>>

QuerySessionsAsync(SessionQuery, CancellationToken)

A page of sessions, for an administrative list.

Task<QueryResult<ServerSideSession>> QuerySessionsAsync(SessionQuery query, CancellationToken cancellationToken = default)

Parameters

query SessionQuery
cancellationToken CancellationToken

Returns

Task<QueryResult<ServerSideSession>>

UpdateSessionAsync(ServerSideSession, CancellationToken)

Replaces the session stored under its Key, or stores it when none is.

Task UpdateSessionAsync(ServerSideSession session, CancellationToken cancellationToken = default)

Parameters

session ServerSideSession

The session as it now stands.

cancellationToken CancellationToken

Cancels the write.

Returns

Task