Cookie policy

This page lists every cookie this app sets, what it is for, whether it is strictly necessary, and how long it lasts. We use as few cookies as possible.

Last updated: 19 June 2026

Consent

Strictly necessary cookies are required for the site to work (signing in, security, remembering your cookie choice) and are always set. The one non-essential cookie — your chosen display language — is only set after you accept it in the cookie banner.

Cookies we set

Cookie Purpose Category Lifetime
.AspNetCore.Identity.Application Keeps you signed in after you log in, so you do not have to re-enter your password on every page. Only set once you sign in. Strictly necessary Session, or persistent if you choose "remember me" at sign-in.
.AspNetCore.Antiforgery.* A security token that protects forms (sign-in, posting comments, uploads, changing the language) against cross-site request forgery (CSRF). Strictly necessary Session (cleared when you close the browser).
Blazor / SignalR circuit The interactive pages run over a SignalR connection (the Blazor Server circuit). It does not set its own tracking cookie — it authenticates over the strictly-necessary Identity and antiforgery cookies above. Listed here so the audit is complete. Strictly necessary No separate cookie; relies on the auth/antiforgery cookies above.
.AspNetCore.Culture Remembers the display language you pick with the language selector, so the interface stays in your chosen language. This is a convenience preference, not required to use the site. Not essential (needs consent) Persistent — up to one year, until you change or clear it.
.AspNet.Consent Records your cookie choice (accept or necessary only) so we honour it and do not ask again. This is how we remember not to set the non-essential language cookie until you agree. Strictly necessary Persistent — up to one year, until you change or clear it.

Changing your choice

You can change your mind at any time by clearing this site's cookies in your browser, which brings the banner back so you can choose again.

An unhandled error has occurred. Reload

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.