In 10.0.8 the most common causes for IsAuthenticated == false and RemoteUserAccount == null after an upgrade are configuration or package coherence issues in the Blazor WebAssembly authentication stack.
Use the following checks and fixes:
- Verify identity provider (OIDC/MSAL) configuration
- Confirm that all OIDC settings still match the provider app registration:
- Authority / Instance
- Tenant ID / Tenant domain
- Client ID
- Redirect URI
- Scopes and API permissions
- A mismatch in any of these (for example, redirect URI or port) prevents the token from being issued and processed, which leaves the user unauthenticated.
- If the app is running on a different port than configured in the redirect URI, update the provider configuration or the app so they match.
- Inspect logs and network traffic
- Enable client-side authentication logging for Blazor WebAssembly as described in the Blazor logging guidance. This will show whether the OIDC flow completes and whether tokens are received.
- Use the browser’s developer tools Network tab to inspect the authentication redirects and token responses. Look for error responses from the identity provider or backend.
- Check for incoherent packages after upgrading to 10.0.8
A functioning app can fail immediately after upgrading the .NET SDK or changing package versions due to incoherent packages.
Apply the recommended cleanup steps:
- Clear NuGet caches:
dotnet nuget locals all --clear
- Delete the project’s
bin and obj folders.
- Restore and rebuild the project.
- If deployed, delete all files in the deployment folder on the server before redeploying.
Also ensure that all Blazor and authentication-related packages target the same framework and are compatible with .NET 10.0.8. Using package versions incompatible with the app’s target framework isn’t supported.
- Confirm the authentication pipeline still runs
- Ensure the Blazor WebAssembly app still uses the
Microsoft.AspNetCore.Components.WebAssembly.Authentication library and that the OIDC authentication process is wired as expected (login page /authentication/login, callback /authentication/login-callback, etc.).
- If the authentication JavaScript (
AuthenticationService.js) or MSAL version was customized or replaced, verify that the custom implementation still matches the 10.0.8 expectations. If a custom AuthenticationService is used, confirm the script reference is correct and loads before blazor.webassembly.js.
- Validate the token itself
- Once a token is obtained, decode it using https://jwt.ms to confirm it contains the expected claims and that it is valid (issuer, audience, expiry). If the token is missing or invalid, the authentication state will remain unauthenticated.
If after these steps IsAuthenticated remains false, focus on:
- Logs from the client-side authentication library.
- Network traces around
/authentication/login and /authentication/login-callback.
- Any differences in configuration or package versions introduced between 10.0.7 and 10.0.8.
References: