Hello,
We are running into an unauthorized errors when we navigate to pages that require calls to authenticated endpoints such as the Users page from the Identity module.
Please do not share your projects in public website.
Steps to reproduce error
- You might need to install yarn before running the app
- Please add azure SIGNAL R connectionstring in Blazor apps-> BlazorServerSignalRTestBlazorModule.cs file
- Run the Tye
- Open Blazor app
- Login with ABP default credentials
- Go to Products page and you see “Unauthorized error”
Observe message "No data available" remains, unhandled exceptions in the browser console, UI crashes,
Here are some logs from the blazor server app:
[16:11:31 WRN] Could not find IdentityClientConfiguration for AbpIdentity. Either define a configuration for AbpIdentity or set a default configuration.
[16:11:31 INF] Start processing HTTP request GET https://localhost:44325/api/identity/users/assignable-roles?api-version=1.0
[16:11:31 INF] Sending HTTP request GET https://localhost:44325/api/identity/users/assignable-roles?api-version=1.0
[16:11:31 INF] Received HTTP response headers after 68.6132ms - 401
[16:11:31 INF] End processing HTTP request after 68.7065ms - 401
[16:11:31 WRN] Unhandled exception rendering component: Unauthorized
Volo.Abp.Http.Client.AbpRemoteCallException: Unauthorized
at Volo.Abp.Http.Client.ClientProxying.ClientProxyBase`1.ThrowExceptionForResponseAsync(HttpResponseMessage response)
at Volo.Abp.Http.Client.ClientProxying.ClientProxyBase`1.RequestAsync(ClientProxyRequestContext requestContext)
at Volo.Abp.Http.Client.ClientProxying.ClientProxyBase`1.RequestAsync[T](ClientProxyRequestContext requestContext)
at Volo.Abp.Http.Client.ClientProxying.ClientProxyBase`1.RequestAsync[T](String methodName, ClientProxyRequestTypeValue arguments)
at Volo.Abp.Identity.ClientProxies.IdentityUserClientProxy.GetAssignableRolesAsync()
at Volo.Abp.Identity.Pro.Blazor.Pages.Identity.UserManagement.OnInitializedAsync()
at Microsoft.AspNetCore.Components.ComponentBase.RunInitAndSetParametersAsync()
at Microsoft.AspNetCore.Components.RenderTree.Renderer.GetErrorHandledTask(Task taskToHandle, ComponentState owningComponentState)
[16:11:31 ERR] Unhandled exception in circuit '367ouGPcd8Y1QK8pIIPjkeTSiVhqqC9t3DzqGZ_rpl8'.
Volo.Abp.Http.Client.AbpRemoteCallException: Unauthorized
at Volo.Abp.Http.Client.ClientProxying.ClientProxyBase`1.ThrowExceptionForResponseAsync(HttpResponseMessage response)
at Volo.Abp.Http.Client.ClientProxying.ClientProxyBase`1.RequestAsync(ClientProxyRequestContext requestContext)
at Volo.Abp.Http.Client.ClientProxying.ClientProxyBase`1.RequestAsync[T](ClientProxyRequestContext requestContext)
at Volo.Abp.Http.Client.ClientProxying.ClientProxyBase`1.RequestAsync[T](String methodName, ClientProxyRequestTypeValue arguments)
at Volo.Abp.Identity.ClientProxies.IdentityUserClientProxy.GetAssignableRolesAsync()
at Volo.Abp.Identity.Pro.Blazor.Pages.Identity.UserManagement.OnInitializedAsync()
at Microsoft.AspNetCore.Components.ComponentBase.RunInitAndSetParametersAsync()
at Microsoft.AspNetCore.Components.RenderTree.Renderer.GetErrorHandledTask(Task taskToHandle, ComponentState owningComponentState)`
Any help would be appreciated.
Thanks,
17 Answer(s)
-
0
hi
What are logs of API website?
Hi,
I'm not sure which API are you asking? I already provided sample project to reproduce the issue. If you follow the steps you will able to get the error with exception.
Thanks, James
Markdown supported.Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post) -
0
Hi,
FYI, We Generated ABP Microservice Solution using ABP Suite. So, not sure why you think its complex project? Its simple ABP Microsservice solution project.
I send out email again with project download link.
Thanks, James
Markdown supported.Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post) -
0
Add
MyHttpContextIdentityModelRemoteServiceHttpClientAuthenticatorto your blazor app.using System.Threading.Tasks; using Microsoft.AspNetCore.Authentication; using Volo.Abp.DependencyInjection; using Volo.Abp.Http.Client.IdentityModel.Web; using Volo.Abp.IdentityModel; namespace BlazorServerSignalRTest.Blazor; [Dependency(ReplaceServices = true)] public class MyHttpContextIdentityModelRemoteServiceHttpClientAuthenticator : HttpContextIdentityModelRemoteServiceHttpClientAuthenticator { public MyHttpContextIdentityModelRemoteServiceHttpClientAuthenticator(IIdentityModelAuthenticationService identityModelAuthenticationService) : base(identityModelAuthenticationService) { } protected override async Task<string> GetAccessTokenFromHttpContextOrNullAsync() { var httpContext = HttpContextAccessor?.HttpContext; if (httpContext == null) { return null; } var token = await httpContext.GetTokenAsync("access_token"); if (token == null) { var authenticateResult = await httpContext.AuthenticateAsync("Cookies"); if (authenticateResult.Succeeded) { token = authenticateResult.Properties.GetTokenValue("access_token"); } } return token; } }Markdown supported.Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post) -
0
Thanks for your response.
Can you please also tell how to use "MyHttpContextIdentityModelRemoteServiceHttpClientAuthenticator" and access token? Because here you mention to add class but not sure how to use it.
Thanks, James
Markdown supported.Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post) -
0
Yes, MyHttpContextIdentityModelRemoteServiceHttpClientAuthenticator working and getting access_token but still having error about signalr connected state that I already mentioned above.
As you already have our sample app and signal r connection string, can you please let us know how to resolve it?
Thanks
Markdown supported.Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post)

