Three Predicates, One Flag
Three components decide independently whether a route needs authentication, only one of them consults auth.enabled - and the combination that turns a public route into a 403.
Newest first, grouped by year. Search or filter by topic.
Three components decide independently whether a route needs authentication, only one of them consults auth.enabled - and the combination that turns a public route into a 403.
Trill's User constructor stores the name trimmed but not lower-cased, and the repository looks it up lower-cased. Any account with a capital letter in its name can never be found, which means it can never sign in - and the test fixture is all lowercase.
DShop.Common makes a stateless JWT revocable with a Redis deny-list and a per-request round-trip - plus an iat claim in milliseconds and two validators that disagree.
Convey's auth packages in two acts - a JWT layer that turns one config section into token issuing and validation, and the uncomfortable question every stateless system meets on logout day.
The FastEndpoints.Security package covers the token lifecycle end to end - creation with symmetric or RSA keys, an abstract refresh-token service that is secretly an endpoint, and a revocation middleware that makes you pay the lookup tax honestly. Part 8 of FastEndpoints in Depth.
A 2004-vintage SSO protocol wired into ASP.NET Core - ticket validation, roles derived from the database at login time, and single sign-out through a WordPress front door.
Pick the one closest to the role. Each is two pages and carries the same facts.
Applied AI
Agentic AI & Cloud Engineer · multi-agent systems, RAG and MCP on AWS
Cloud & .NET
C#, .NET 10 and ASP.NET Core microservices on AWS and Azure · Terraform & AWS CDK
Data Engineering
AWS lakehouse · Kinesis, Glue (PySpark), Apache Iceberg, Lake Formation
Everything
All three domains, with the standout project from each