Как передать контекст из MVC в действие входа в IdentityServer - PullRequest
0 голосов
/ 30 марта 2020

Мой пример использования следующий: у меня есть одна служба приложений "mvc" и отдельная служба Identity Server "idP", и мне нужно передать некоторый контекст mvc -> idP, чтобы я мог настроить пользовательский интерфейс страницы входа в idP и Я шокирован тем, что что-то, что ИМХО является супер распространенным сценарием / требованием, кажется, что пока невозможно выполнить миссию.

Вот как выглядит мое действие idP AccountController

[HttpGet]
[AllowAnonymous]
public async Task<IActionResult> Login(string returnUrl, string position)
{
  ...
}

Теперь я попытался передать этот параметр из моего MVC приложения, такого как

var items = new Dictionary<string, string>()
{
    {"position", "Chef"},
};

var parameters = new Dictionary<string, object>()
{
    {"position", "Chef"},
};

var authenticationProperties = new AuthenticationProperties(items, parameters)
{
    RedirectUri = "/home/index",

};

return this.Challenge(authenticationProperties);

Это не сработало вообще.

Исходя из того, что я прочитал SO и документы сервера идентификации, мне, возможно, придется использовать в MVC app

services.AddOidcStateDataFormatterCache();

, но я не смог найти реального примера того, как это сделать, и не уверен, что мне нужно что-то делать на стороне iDP?

Кто-нибудь знает способ достижения цели передачи контекста вызова из приложения MVC в приложение idP?

1 Ответ

0 голосов
/ 30 марта 2020

Как вы знаете, IdentityServer реализует стандарт OAuth, и его связь основана на этом стандарте.

IdentityServer как поставщик удостоверений указывает, кто является пользователем, и предоставляет любую информацию об этом пользователе, используя конечную точку UserInfo . Таким образом, если у вас есть какой-либо бизнес-лог c, вы должны обрабатывать его в своем приложении, а не в IdentityServer.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...