Handle different usertypes when signing up in an Blazor server app

I need to handle to 3 different types of user in my Blazor server app, but I can’t figure out how
differentiate the users.

My initial thought was to create 3 different sign up buttons, and add metadata to the signup process to define the different roles. After a successful signup I want to add that custom metadata to the IdToken / AccessToken of the user using an signup action. When I get a callback to my app with the authenticated user, I want to parse the user type and create the user in my api / database.

Is there any way to do this?

public async Task OnGet()
        {
            await HttpContext.ChallengeAsync("Auth0", new AuthenticationProperties(null, new Dictionary<string, object>
                {
                    {
                        "screen_hint", "signup"
                    },
                    {
                        "type", "contractor"
                    }
                }
            ));
        }

This is what I’ve tried so far without success.