Ok, I've managed to attach an event handler to the Manage Account button via its Id "MenuItem_Account_Manage", still wary that the redirect will trigger before the new handler has completed but is working for now.
The Logout button however doesn't have an Id or any classes or any other parameters to make it easy to attach event handlers to. Can the next version add an Id to that button please?
In your example none of your parameters are named *Id.
Creating an ABP service with the following setup triggers the bug:
public interface IBookAppService : IApplicationService {
Task<string> FetchBooks(int? bookGenreId = null);
}
And that generates the following route as shown in Swagger:
The nullable parameter with a default value is now a required parameter and a part of the path.
If you then inject that service and call FetchBooks using the default value the result just hangs, no errors are thrown.
So once thing I just noticed is a solid disconnect between our HttpApi.Host and the Blazor.Client. Restarting the API in debugging mode causes the authenticated user to not longer be logged in on the host side, but that same user can still use the Client page without reauthenticating and without any issue. This may be related to the fact that every login generates two sessions, which I assumed was normal behaviour (one for host and one for client) but now I'm not so sure.
This still isn't working.
I've got the Sessions correctly being removed from the database on user login in-line with the Logout from All Devices setting but those users still have access to the system. It times out after an hour of inactivity but users with an active valid session also are timing out after an hour of inactivity.
Have upgraded to v8.3.0-rc.3 but still cannot see any changes between a new generated project and our solution in regards to modules imported and middleware being started.
What specific part of the Blazor.Client is checking the session validity? Or is it going back to the Host running OpenIddict to check that?
Have been comparing with a newly generated v8.3.0-rc.1 project, no major differences in any of the module configurations (other than the new DynamicClaims which I've implemented with no change).
Where is the Session checking actually implemented in the client projects?
Your provided link to "Migrating to Blazor Web App" is broken and linking back to this post.
We're also in the process of upgrading to 8.2 and I came across the same issue and the lack of 8.2 guides.
For our localization configuration inside Configure<AbpLocalizationOptions> the FlagIcon parameter in the LanguageInfo constructor was identical to the CultureName parameter so I've just removed the parameter for now as I'm not sure we're actually using the FlagIcon itself anywhere so we'll see if that causes any problems.
Also had the same issue with the new IdentitySession inside our DbContext but solved that by adding a reference to the new Sessions table as required by the IIdentityProDbContext interface. public DbSet<IdentitySession> Sessions { get; set; }