What problem does it solve? Adding authentication to a Blazor Web App is error-prone because behavior differs drastically between static SSR, interactive Server, and WebAssembly render modes. This Skill guides you through correctly wiring Identity, authorization, and auth state so you avoid common failures like null HttpContext, SignInManager exceptions, and lost auth state after WebAssembly loads. ## Core Features & Use Cases - Render-mode-aware setup: Register auth services, wire App.razor with AuthorizeRouteView, and conditionally apply render modes using AcceptsInteractiveRouting. - Page and component protection: Apply [Authorize] attributes, role and policy-based access, AuthorizeView conditional UI, and cascading AuthenticationState. - Identity page handling: Keep login and register pages as static SSR with [ExcludeFromInteractiveRouting] so SignInManager works correctly. - WebAssembly auth state: Serialize and deserialize AuthenticationState so users stay authenticated after WASM takes over from prerendering. - Use Case: You add [Authorize] to an admin page in a globally interactive Blazor app, but the Identity login page crashes. This Skill walks you through marking it with [ExcludeFromInteractiveRouting] and fixing App.razor. ## Quick Start Add authentication with role-based authorization to my interactive Blazor Web App and make sure the Identity login pages still work.