From f0dfe1aefcfa3ee09fba74ee5853a498925e11d7 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Tue, 7 Apr 2026 16:06:40 +0000 Subject: [PATCH 1/6] chore: upgrade EqDemo.BlazorWasm.AdhocReporting to .NET 8.0 - Update TargetFramework from net6.0 to net8.0 in all 3 sub-projects (Server, Client, Shared) - Update Microsoft.AspNetCore.* packages from 6.0.x to 8.0.11 - Update Microsoft.EntityFrameworkCore.* packages from 6.0.1 to 8.0.11 - Update Microsoft.Data.SqlClient from 2.1.7 to 5.2.2 - Update Microsoft.VisualStudio.Web.CodeGeneration.Design from 6.0.1 to 8.0.7 - Update Microsoft.Extensions.Http from 6.0.0 to 8.0.1 - Bump Microsoft.IdentityModel.JsonWebTokens and System.IdentityModel.Tokens.Jwt to 6.35.0 - Bump NuGet.Common and NuGet.Protocol to 6.11.0 - Remove Microsoft.AspNetCore.ApiAuthorization.IdentityServer (removed in .NET 8) - Replace IdentityServer auth with standard ASP.NET Core Identity cookie auth - Remove OidcConfigurationController (no longer needed without IdentityServer) - Update AppDbContext to inherit from IdentityDbContext instead of ApiAuthorizationDbContext Co-Authored-By: Toby Drinkall --- ...mo.BlazorWasm.AdhocReporting.Client.csproj | 12 +++---- .../OidcConfigurationController.cs | 25 --------------- .../Server/Data/AppDbContext.cs | 10 ++---- ...mo.BlazorWasm.AdhocReporting.Server.csproj | 31 +++++++++---------- .../Server/Program.cs | 19 +++--------- ...mo.BlazorWasm.AdhocReporting.Shared.csproj | 2 +- 6 files changed, 29 insertions(+), 70 deletions(-) delete mode 100644 AspNetCore/Blazor/AdHocReporting.BlazorWasm/Server/Controllers/OidcConfigurationController.cs diff --git a/AspNetCore/Blazor/AdHocReporting.BlazorWasm/Client/EqDemo.BlazorWasm.AdhocReporting.Client.csproj b/AspNetCore/Blazor/AdHocReporting.BlazorWasm/Client/EqDemo.BlazorWasm.AdhocReporting.Client.csproj index 757d9614..8366b706 100644 --- a/AspNetCore/Blazor/AdHocReporting.BlazorWasm/Client/EqDemo.BlazorWasm.AdhocReporting.Client.csproj +++ b/AspNetCore/Blazor/AdHocReporting.BlazorWasm/Client/EqDemo.BlazorWasm.AdhocReporting.Client.csproj @@ -1,18 +1,18 @@  - net6.0 + net8.0 EqDemo.Client enable enable - - - - - + + + + + diff --git a/AspNetCore/Blazor/AdHocReporting.BlazorWasm/Server/Controllers/OidcConfigurationController.cs b/AspNetCore/Blazor/AdHocReporting.BlazorWasm/Server/Controllers/OidcConfigurationController.cs deleted file mode 100644 index 07da33dc..00000000 --- a/AspNetCore/Blazor/AdHocReporting.BlazorWasm/Server/Controllers/OidcConfigurationController.cs +++ /dev/null @@ -1,25 +0,0 @@ -using Microsoft.AspNetCore.ApiAuthorization.IdentityServer; -using Microsoft.AspNetCore.Mvc; - -namespace EqDemo.Controllers -{ - public class OidcConfigurationController : Controller - { - private readonly ILogger _logger; - - public OidcConfigurationController(IClientRequestParametersProvider clientRequestParametersProvider, ILogger logger) - { - ClientRequestParametersProvider = clientRequestParametersProvider; - _logger = logger; - } - - public IClientRequestParametersProvider ClientRequestParametersProvider { get; } - - [HttpGet("_configuration/{clientId}")] - public IActionResult GetClientRequestParameters([FromRoute] string clientId) - { - var parameters = ClientRequestParametersProvider.GetClientParameters(HttpContext, clientId); - return Ok(parameters); - } - } -} \ No newline at end of file diff --git a/AspNetCore/Blazor/AdHocReporting.BlazorWasm/Server/Data/AppDbContext.cs b/AspNetCore/Blazor/AdHocReporting.BlazorWasm/Server/Data/AppDbContext.cs index 6f103610..e28e20d7 100644 --- a/AspNetCore/Blazor/AdHocReporting.BlazorWasm/Server/Data/AppDbContext.cs +++ b/AspNetCore/Blazor/AdHocReporting.BlazorWasm/Server/Data/AppDbContext.cs @@ -1,18 +1,14 @@ -using Microsoft.AspNetCore.ApiAuthorization.IdentityServer; +using Microsoft.AspNetCore.Identity.EntityFrameworkCore; using Microsoft.EntityFrameworkCore; -using Microsoft.Extensions.Options; - -using Duende.IdentityServer.EntityFramework.Options; using EqDemo.Models; namespace EqDemo.Data { - public class AppDbContext : ApiAuthorizationDbContext + public class AppDbContext : IdentityDbContext { public AppDbContext( - DbContextOptions options, - IOptions operationalStoreOptions) : base(options, operationalStoreOptions) + DbContextOptions options) : base(options) { } diff --git a/AspNetCore/Blazor/AdHocReporting.BlazorWasm/Server/EqDemo.BlazorWasm.AdhocReporting.Server.csproj b/AspNetCore/Blazor/AdHocReporting.BlazorWasm/Server/EqDemo.BlazorWasm.AdhocReporting.Server.csproj index 79054182..567e56f9 100644 --- a/AspNetCore/Blazor/AdHocReporting.BlazorWasm/Server/EqDemo.BlazorWasm.AdhocReporting.Server.csproj +++ b/AspNetCore/Blazor/AdHocReporting.BlazorWasm/Server/EqDemo.BlazorWasm.AdhocReporting.Server.csproj @@ -1,20 +1,20 @@ - net6.0 + net8.0 disable enable EqDemo.BlazorWasm.AdhocReporting.Server EqDemo.Server - - - - - + + + + + - + @@ -23,14 +23,13 @@ - - - - - - - - + + + + + + + @@ -48,4 +47,4 @@ - \ No newline at end of file + diff --git a/AspNetCore/Blazor/AdHocReporting.BlazorWasm/Server/Program.cs b/AspNetCore/Blazor/AdHocReporting.BlazorWasm/Server/Program.cs index 4a2636a4..eedd6bde 100644 --- a/AspNetCore/Blazor/AdHocReporting.BlazorWasm/Server/Program.cs +++ b/AspNetCore/Blazor/AdHocReporting.BlazorWasm/Server/Program.cs @@ -1,5 +1,3 @@ -using System.IdentityModel.Tokens.Jwt; -using Microsoft.AspNetCore.Authentication; using Microsoft.AspNetCore.Identity; using Microsoft.EntityFrameworkCore; @@ -29,18 +27,10 @@ .AddRoles() .AddEntityFrameworkStores(); -builder.Services.AddIdentityServer() - .AddApiAuthorization(options => { - //the following 2 lines are necessary to support roles on the WebAssembly side - options.IdentityResources["openid"].UserClaims.Add("role"); - options.ApiResources.Single().UserClaims.Add("role"); - }); - -// We need to do this as it maps "role" to ClaimTypes.Role and causes issues -JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Remove("role"); - -builder.Services.AddAuthentication() - .AddIdentityServerJwt(); +builder.Services.AddAuthentication(options => { + options.DefaultAuthenticateScheme = IdentityConstants.ApplicationScheme; + options.DefaultChallengeScheme = IdentityConstants.ApplicationScheme; +}); //EasyQuery services builder.Services.AddEasyQuery() @@ -79,7 +69,6 @@ app.UseRouting(); -app.UseIdentityServer(); app.UseAuthentication(); app.UseAuthorization(); diff --git a/AspNetCore/Blazor/AdHocReporting.BlazorWasm/Shared/EqDemo.BlazorWasm.AdhocReporting.Shared.csproj b/AspNetCore/Blazor/AdHocReporting.BlazorWasm/Shared/EqDemo.BlazorWasm.AdhocReporting.Shared.csproj index a5b78ac4..9a938be4 100644 --- a/AspNetCore/Blazor/AdHocReporting.BlazorWasm/Shared/EqDemo.BlazorWasm.AdhocReporting.Shared.csproj +++ b/AspNetCore/Blazor/AdHocReporting.BlazorWasm/Shared/EqDemo.BlazorWasm.AdhocReporting.Shared.csproj @@ -1,7 +1,7 @@ - net6.0 + net8.0 enable enable From c21770d1fcaaf0156a730ecfa3458021737df128 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Tue, 7 Apr 2026 16:13:32 +0000 Subject: [PATCH 2/6] fix: migrate client-side auth from OIDC/IdentityServer to cookie-based Identity - Remove AddApiAuthorization() and BaseAddressAuthorizationMessageHandler from Client/Program.cs - Add custom ServerAuthenticationStateProvider that checks auth via /api/user endpoint - Add UserController on server side to expose current user auth state - Update LoginDisplay.razor to use server-side Identity UI endpoints instead of OIDC - Update Authentication.razor to redirect to Identity pages instead of using RemoteAuthenticatorView - Update RedirectToLogin.razor to use server-side Identity login page - Resolves runtime auth breakage from IdentityServer removal Co-Authored-By: Toby Drinkall --- .../Client/Pages/Authentication.razor | 22 +++++++- .../Client/Program.cs | 11 ++-- .../ServerAuthenticationStateProvider.cs | 54 +++++++++++++++++++ .../Client/Shared/LoginDisplay.razor | 21 +++----- .../Client/Shared/RedirectToLogin.razor | 2 +- .../Server/Controllers/UserController.cs | 26 +++++++++ 6 files changed, 112 insertions(+), 24 deletions(-) create mode 100644 AspNetCore/Blazor/AdHocReporting.BlazorWasm/Client/ServerAuthenticationStateProvider.cs create mode 100644 AspNetCore/Blazor/AdHocReporting.BlazorWasm/Server/Controllers/UserController.cs diff --git a/AspNetCore/Blazor/AdHocReporting.BlazorWasm/Client/Pages/Authentication.razor b/AspNetCore/Blazor/AdHocReporting.BlazorWasm/Client/Pages/Authentication.razor index 6c743567..f4917390 100644 --- a/AspNetCore/Blazor/AdHocReporting.BlazorWasm/Client/Pages/Authentication.razor +++ b/AspNetCore/Blazor/AdHocReporting.BlazorWasm/Client/Pages/Authentication.razor @@ -1,7 +1,25 @@ @page "/authentication/{action}" -@using Microsoft.AspNetCore.Components.WebAssembly.Authentication - + +@inject NavigationManager Navigation @code{ [Parameter] public string? Action { get; set; } + + protected override void OnInitialized() + { + var returnUrl = Uri.EscapeDataString(Navigation.BaseUri); + var redirectUrl = Action?.ToLower() switch + { + "login" => $"Identity/Account/Login?returnUrl={returnUrl}", + "register" => $"Identity/Account/Register?returnUrl={returnUrl}", + "logout" => "Identity/Account/LogOut", + "profile" => "Identity/Account/Manage", + _ => "" + }; + + if (!string.IsNullOrEmpty(redirectUrl)) + { + Navigation.NavigateTo(redirectUrl, forceLoad: true); + } + } } diff --git a/AspNetCore/Blazor/AdHocReporting.BlazorWasm/Client/Program.cs b/AspNetCore/Blazor/AdHocReporting.BlazorWasm/Client/Program.cs index ba141b48..7dd0250c 100644 --- a/AspNetCore/Blazor/AdHocReporting.BlazorWasm/Client/Program.cs +++ b/AspNetCore/Blazor/AdHocReporting.BlazorWasm/Client/Program.cs @@ -1,5 +1,5 @@ +using Microsoft.AspNetCore.Components.Authorization; using Microsoft.AspNetCore.Components.Web; -using Microsoft.AspNetCore.Components.WebAssembly.Authentication; using Microsoft.AspNetCore.Components.WebAssembly.Hosting; using EqDemo.Client; @@ -8,12 +8,9 @@ builder.RootComponents.Add("#app"); builder.RootComponents.Add("head::after"); -builder.Services.AddHttpClient("EqDemo.BlazorWasm.AdhocReporting.ServerAPI", client => client.BaseAddress = new Uri(builder.HostEnvironment.BaseAddress)) - .AddHttpMessageHandler(); +builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) }); -// Supply HttpClient instances that include access tokens when making requests to the server project -builder.Services.AddScoped(sp => sp.GetRequiredService().CreateClient("EqDemo.BlazorWasm.AdhocReporting.ServerAPI")); - -builder.Services.AddApiAuthorization(); +builder.Services.AddAuthorizationCore(); +builder.Services.AddScoped(); await builder.Build().RunAsync(); diff --git a/AspNetCore/Blazor/AdHocReporting.BlazorWasm/Client/ServerAuthenticationStateProvider.cs b/AspNetCore/Blazor/AdHocReporting.BlazorWasm/Client/ServerAuthenticationStateProvider.cs new file mode 100644 index 00000000..3e8e1b88 --- /dev/null +++ b/AspNetCore/Blazor/AdHocReporting.BlazorWasm/Client/ServerAuthenticationStateProvider.cs @@ -0,0 +1,54 @@ +using System.Net.Http.Json; +using System.Security.Claims; +using Microsoft.AspNetCore.Components.Authorization; + +namespace EqDemo.Client; + +public class ServerAuthenticationStateProvider : AuthenticationStateProvider +{ + private readonly HttpClient _httpClient; + + public ServerAuthenticationStateProvider(HttpClient httpClient) + { + _httpClient = httpClient; + } + + public override async Task GetAuthenticationStateAsync() + { + try + { + var userInfo = await _httpClient.GetFromJsonAsync("api/user"); + if (userInfo != null && userInfo.IsAuthenticated) + { + var claims = new List + { + new Claim(ClaimTypes.Name, userInfo.UserName ?? string.Empty) + }; + + if (userInfo.Roles != null) + { + foreach (var role in userInfo.Roles) + { + claims.Add(new Claim(ClaimTypes.Role, role)); + } + } + + var identity = new ClaimsIdentity(claims, "serverauth"); + return new AuthenticationState(new ClaimsPrincipal(identity)); + } + } + catch (Exception) + { + // Not authenticated or server unavailable + } + + return new AuthenticationState(new ClaimsPrincipal(new ClaimsIdentity())); + } + + public class UserInfo + { + public bool IsAuthenticated { get; set; } + public string? UserName { get; set; } + public List? Roles { get; set; } + } +} diff --git a/AspNetCore/Blazor/AdHocReporting.BlazorWasm/Client/Shared/LoginDisplay.razor b/AspNetCore/Blazor/AdHocReporting.BlazorWasm/Client/Shared/LoginDisplay.razor index 5e52e86f..65af6e87 100644 --- a/AspNetCore/Blazor/AdHocReporting.BlazorWasm/Client/Shared/LoginDisplay.razor +++ b/AspNetCore/Blazor/AdHocReporting.BlazorWasm/Client/Shared/LoginDisplay.razor @@ -1,24 +1,17 @@ @using Microsoft.AspNetCore.Components.Authorization -@using Microsoft.AspNetCore.Components.WebAssembly.Authentication @inject NavigationManager Navigation -@inject SignOutSessionStateManager SignOutManager - Hello, @context.User.Identity?.Name! - + Hello, @context.User.Identity?.Name! + Manage +
+ +
- Register - Log in + Register + Log in
- -@code{ - private async Task BeginSignOut(MouseEventArgs args) - { - await SignOutManager.SetSignOutState(); - Navigation.NavigateTo("authentication/logout"); - } -} diff --git a/AspNetCore/Blazor/AdHocReporting.BlazorWasm/Client/Shared/RedirectToLogin.razor b/AspNetCore/Blazor/AdHocReporting.BlazorWasm/Client/Shared/RedirectToLogin.razor index 2db61cf6..f277ef90 100644 --- a/AspNetCore/Blazor/AdHocReporting.BlazorWasm/Client/Shared/RedirectToLogin.razor +++ b/AspNetCore/Blazor/AdHocReporting.BlazorWasm/Client/Shared/RedirectToLogin.razor @@ -3,6 +3,6 @@ @code { protected override void OnInitialized() { - Navigation.NavigateTo($"authentication/login?returnUrl={Uri.EscapeDataString(Navigation.Uri)}"); + Navigation.NavigateTo($"Identity/Account/Login?returnUrl={Uri.EscapeDataString(Navigation.Uri)}", forceLoad: true); } } diff --git a/AspNetCore/Blazor/AdHocReporting.BlazorWasm/Server/Controllers/UserController.cs b/AspNetCore/Blazor/AdHocReporting.BlazorWasm/Server/Controllers/UserController.cs new file mode 100644 index 00000000..6ed70cc3 --- /dev/null +++ b/AspNetCore/Blazor/AdHocReporting.BlazorWasm/Server/Controllers/UserController.cs @@ -0,0 +1,26 @@ +using System.Security.Claims; +using Microsoft.AspNetCore.Mvc; + +namespace EqDemo.Controllers +{ + [Route("api/[controller]")] + [ApiController] + public class UserController : ControllerBase + { + [HttpGet] + public IActionResult GetCurrentUser() + { + if (User.Identity?.IsAuthenticated == true) + { + return Ok(new + { + IsAuthenticated = true, + UserName = User.Identity.Name, + Roles = User.FindAll(ClaimTypes.Role).Select(c => c.Value).ToList() + }); + } + + return Ok(new { IsAuthenticated = false }); + } + } +} From 3afadc4fe523fc4868b1dec12790e4c2138e751e Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Tue, 7 Apr 2026 16:18:22 +0000 Subject: [PATCH 3/6] fix: use NavigationManager for logout to avoid anti-forgery token issue Replace form POST with NavigationManager.NavigateTo(forceLoad: true) to navigate to the server-rendered logout page, which has its own anti-forgery token. Co-Authored-By: Toby Drinkall --- .../Client/Shared/LoginDisplay.razor | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/AspNetCore/Blazor/AdHocReporting.BlazorWasm/Client/Shared/LoginDisplay.razor b/AspNetCore/Blazor/AdHocReporting.BlazorWasm/Client/Shared/LoginDisplay.razor index 65af6e87..f264d4e3 100644 --- a/AspNetCore/Blazor/AdHocReporting.BlazorWasm/Client/Shared/LoginDisplay.razor +++ b/AspNetCore/Blazor/AdHocReporting.BlazorWasm/Client/Shared/LoginDisplay.razor @@ -6,12 +6,17 @@ Hello, @context.User.Identity?.Name! Manage -
- -
+
Register Log in + +@code{ + private void BeginSignOut() + { + Navigation.NavigateTo("Identity/Account/LogOut", forceLoad: true); + } +} From ca13fd9bc5710b25685d656605753834cf145c78 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Tue, 7 Apr 2026 16:23:07 +0000 Subject: [PATCH 4/6] fix: use forceLoad navigation for all Identity links to bypass Blazor router Replace links to server-side Identity pages with @onclick handlers that use NavigationManager.NavigateTo(forceLoad: true), preventing the Blazor WASM router from intercepting them and showing 'Not found'. Co-Authored-By: Toby Drinkall --- .../Client/Shared/LoginDisplay.razor | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/AspNetCore/Blazor/AdHocReporting.BlazorWasm/Client/Shared/LoginDisplay.razor b/AspNetCore/Blazor/AdHocReporting.BlazorWasm/Client/Shared/LoginDisplay.razor index f264d4e3..c2c05f44 100644 --- a/AspNetCore/Blazor/AdHocReporting.BlazorWasm/Client/Shared/LoginDisplay.razor +++ b/AspNetCore/Blazor/AdHocReporting.BlazorWasm/Client/Shared/LoginDisplay.razor @@ -5,16 +5,31 @@ Hello, @context.User.Identity?.Name! - Manage + - Register - Log in + + @code{ + private void NavigateToManage() + { + Navigation.NavigateTo("Identity/Account/Manage", forceLoad: true); + } + + private void NavigateToRegister() + { + Navigation.NavigateTo("Identity/Account/Register", forceLoad: true); + } + + private void NavigateToLogin() + { + Navigation.NavigateTo("Identity/Account/Login", forceLoad: true); + } + private void BeginSignOut() { Navigation.NavigateTo("Identity/Account/LogOut", forceLoad: true); From c94c8f604b498a6511c40675bd8cb5812a027d8b Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Tue, 7 Apr 2026 16:30:32 +0000 Subject: [PATCH 5/6] fix: use relative paths for returnUrl to avoid LocalRedirect exception LocalRedirect rejects absolute URLs. Use '/' as returnUrl in Authentication.razor and convert Navigation.Uri to a relative path in RedirectToLogin.razor. Co-Authored-By: Toby Drinkall --- .../AdHocReporting.BlazorWasm/Client/Pages/Authentication.razor | 2 +- .../Client/Shared/RedirectToLogin.razor | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/AspNetCore/Blazor/AdHocReporting.BlazorWasm/Client/Pages/Authentication.razor b/AspNetCore/Blazor/AdHocReporting.BlazorWasm/Client/Pages/Authentication.razor index f4917390..8c443cf6 100644 --- a/AspNetCore/Blazor/AdHocReporting.BlazorWasm/Client/Pages/Authentication.razor +++ b/AspNetCore/Blazor/AdHocReporting.BlazorWasm/Client/Pages/Authentication.razor @@ -7,7 +7,7 @@ protected override void OnInitialized() { - var returnUrl = Uri.EscapeDataString(Navigation.BaseUri); + var returnUrl = Uri.EscapeDataString("/"); var redirectUrl = Action?.ToLower() switch { "login" => $"Identity/Account/Login?returnUrl={returnUrl}", diff --git a/AspNetCore/Blazor/AdHocReporting.BlazorWasm/Client/Shared/RedirectToLogin.razor b/AspNetCore/Blazor/AdHocReporting.BlazorWasm/Client/Shared/RedirectToLogin.razor index f277ef90..81c4c973 100644 --- a/AspNetCore/Blazor/AdHocReporting.BlazorWasm/Client/Shared/RedirectToLogin.razor +++ b/AspNetCore/Blazor/AdHocReporting.BlazorWasm/Client/Shared/RedirectToLogin.razor @@ -3,6 +3,6 @@ @code { protected override void OnInitialized() { - Navigation.NavigateTo($"Identity/Account/Login?returnUrl={Uri.EscapeDataString(Navigation.Uri)}", forceLoad: true); + Navigation.NavigateTo($"Identity/Account/Login?returnUrl={Uri.EscapeDataString("/" + Navigation.ToBaseRelativePath(Navigation.Uri))}", forceLoad: true); } } From 9d095614b8a1d9cdcab1923d08de579ef859a4e8 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Tue, 7 Apr 2026 16:36:16 +0000 Subject: [PATCH 6/6] fix: remove IAccessTokenProviderAccessor from Reports.razor and unused AuthenticationService.js Reports.razor was still injecting IAccessTokenProviderAccessor which is no longer registered after removing AddApiAuthorization(). Pass null token to startAdhocReporting since cookie auth is used automatically by the browser. Also remove the unused AuthenticationService.js script reference from index.html. Co-Authored-By: Toby Drinkall --- .../Client/Pages/Reports.razor | 11 +---------- .../Client/wwwroot/index.html | 1 - 2 files changed, 1 insertion(+), 11 deletions(-) diff --git a/AspNetCore/Blazor/AdHocReporting.BlazorWasm/Client/Pages/Reports.razor b/AspNetCore/Blazor/AdHocReporting.BlazorWasm/Client/Pages/Reports.razor index ac5ce0a1..ecfd20cc 100644 --- a/AspNetCore/Blazor/AdHocReporting.BlazorWasm/Client/Pages/Reports.razor +++ b/AspNetCore/Blazor/AdHocReporting.BlazorWasm/Client/Pages/Reports.razor @@ -1,14 +1,11 @@ @page "/reports" @using Microsoft.AspNetCore.Authorization -@using Microsoft.AspNetCore.Components.WebAssembly.Authentication -@using Microsoft.AspNetCore.Components.WebAssembly.Authentication.Internal @attribute [Authorize] @implements IAsyncDisposable @inject IJSRuntime JSRuntime @inject NavigationManager NavigationManager @inject AuthenticationStateProvider AuthenticationStateProvider -@inject IAccessTokenProviderAccessor AccessTokenProviderAccessor