Расширение потока входа в систему для удостоверения личности с помощью страницы выбора арендатора, как получить заявки пользователей на этой странице? - PullRequest
0 голосов
/ 17 февраля 2020

Я реализовал пользовательский AuthorizeInteractionResponseGenerator, чтобы включить страницу выбора арендатора в поток входа в систему на основе: IdentityServer4 пользовательского AuthorizeInteractionResponseGenerator

public override async Task<InteractionResponse> ProcessInteractionAsync(ValidatedAuthorizeRequest request, ConsentResponse consent = null)
        {
            var response = await base.ProcessInteractionAsync(request, consent);
            if (response.IsConsent || response.IsLogin || response.IsError)
                return response;

            if (!request.Subject.HasClaim(c => c.Type == "TenantId" && c.Value != "0"))
                return new InteractionResponse
                {
                    RedirectUrl = "/Organization"
                };

            return new InteractionResponse();
        }

После перенаправления на страницу / Organization HttpContext не работает иметь какую-либо информацию о пользователе или претензиях, поскольку пользователь еще не аутентифицирован. Как получить доступ к идентификатору пользователя, чтобы загрузить соответствующий список арендаторов для выбора?

Возможно, уместно: я начал с шаблона веб-приложения angular с отдельными учетными записями пользователей, поэтому при запуске содержится:

            services.AddDefaultIdentity<ApplicationUser>(options => options.SignIn.RequireConfirmedAccount = true)
                .AddEntityFrameworkStores<ApplicationDbContext>();

            services.AddIdentityServer()
                .AddApiAuthorization<ApplicationUser, ApplicationDbContext>()
                .AddAuthorizeInteractionResponseGenerator<TenantChooserResponseGenerator>();

            services.AddAuthentication()
                .AddIdentityServerJwt();
...