That last chunk of code is what I needed. Adding that to the module file for the IdentityServer project allowed the MiddleName to save.
So, I've managed to create a new profile management tab using the module's original source code as a base. I've modified the JavaScript to send an UpdateProfileDto to the ProfileAppService with my test extended property ("MiddleName") inside the ExtraProperties dictionary. However, this property doesn't get saved.
Looking at a project that uses the source code for the Account module (so I can debug it), I can see that though the UpdateProfileDto's ExtraProperties reaches the ProfileAppService's Update method (so my JavaScript works), the ExtraProperties do not get mapped to the user after the "input.MapExtraPropertiesTo(user)" method call. How do I set up the ExtraProperty so that it will actually get mapped?
Oh, thank you. Is it possible to remove/hide the existing tab for profile info? I just want to make a replacement tab that shows all the built-in IdentityUser properties + the extended properties I've added, formatted the way I'd like (one of them, for example, is a middle name that should have an input field between the first and last names).
I've extended the IdentityUser entity using the directions outlined here: https://docs.abp.io/en/abp/latest/Customizing-Application-Modules-Extending-Entities In my test project, this has worked to add a "MiddleName" field that is present as a column on the AbpUsers table. They also show up on the Users CRUD page and modals.
However, they are not present on the profile management page (the one you reach by selecting the user icon on the top of the page and selecting "My Profile"). I've attempted to override the Manage Profile tab component so I could add it myself, following the steps in this guide: https://docs.abp.io/en/abp/latest/UI/AspNetCore/Customization-User-Interface. However, trying to visit this page throws the following exception:
InvalidOperationException: The model item passed into the ViewDataDictionary is of type 'Volo.Abp.Account.Public.Web.Pages.Account.Components.ProfileManagementGroup.PersonalInfo.AccountProfilePersonalInfoManagementGroupViewComponent+PersonalInfoModel', but this ViewDataDictionary instance requires a model item of type 'TieredTestProject.Pages.Account.Components.ProfileManagementGroup.PersonalInfo.MyProfileManagementModel'.
With "MyProfileManagementModel" being the model of my overriding component. I can do what I'm looking for if I include the source code for the Account module, but I'd rather not go that route as I don't seem to be able to easily update the ABP version after that (Suite, for example, only updates the main projects, not any of the modules, and updating the ABP packages manually causes errors).
I would like to know how to do one of the following:
Thank you.
Also, it is a warning message. You can continue if you are sure that the project is not running.
No, I can't. Clicking the "Okay" button on that popup doesn't let entity generation proceed. It just stops it there, and there's no other button to click.
To check if the project is running, Suite sends GET request to
launch url
's in the solution. If the response is successfull, that means it is running.
Well, that explains why it doesn't work on our published apps. Where would I go if I wanted to temporarily change that launch URL so that this response is no longer triggered?
As stated above, after upgrading Suite to 5.3.0 or higher, I can no longer use it in two already-existing 5.2.2 projects to generate new entities. Suite keeps telling me the project is running, even though it isn't. I've been able to create new entities on entirely new projects, as well as a project that has never been "published" through Visual Studio before (the two projects I receive this error for have). What is making Suite think that the project is running, and how do I correct it? I'm no longer able to use the latest version of ABP until I figure this out.
Here's a link. I deleted what was there so it'd start with a fresh log. This should show starting the web app, going to the login screen, then trying to connect through the OpenIdConnect button. As stated before, it immediately returned to the login screen without logging in.
https://etvsoftware0-my.sharepoint.com/:t:/g/personal/amacaulay_etvsoftware_com/EUoNySMvi3JMuxiigE3srscBjxAWdubySgty938AFHqvVw?e=athe4I
Where are those?
Passing in a different value for authentication scheme didn't help.
I already got it working in a test Blazor server app. However, in ABP, logins using OpenIdConnect stop going through after adding these three lines of code to initialize the Graph client component:
.EnableTokenAcquisitionToCallDownstreamApi(new string[] { "Group.ReadWrite.All", "User.ReadBasic.All" })
.AddMicrosoftGraph(configuration.GetSection("Graph"))
.AddInMemoryTokenCaches();
When they're commented out, OpenIdConnect logins start working again.