Я думал, что при смене арендатора я могу просто предложить ChallengeResult(), а затем в IdentityServer обработать это, чтобы проверить, к какому арендатору пользователь хотел бы получить доступ, а затем выдать новый токен с утверждением «ChosenTenant» (или что-то в этом роде). Вот так:
Код: Выделить всё
var authProps = new AuthenticationProperties();
authProps.SetString("CurrentTenantId", response.Result.Id.ToString());
authProps.RedirectUri = "/#home";
return new ChallengeResult(authProps);
Код: Выделить всё
public async Task GetProfileDataAsync(ProfileDataRequestContext context)
{
var sub = context.Subject.FindFirst("sub").Value;
context.IssuedClaims = await _userStore.GetClaimsForUser(sub, context.RequestedClaimTypes, context.Client.ClientId);
return;
}
Или, может быть, я делаю это неправильно?
Подробнее здесь: https://stackoverflow.com/questions/561 ... ityserver4
Мобильная версия