В своих усилиях с сервером идентификации я создаю несколько тестовых сайтов. У меня есть сам провайдер идентификации (использующий Identity Server 4), и у меня есть клиентское приложение. На одной из страниц клиентского приложения отображается содержимое в зависимости от того, вошел ли пользователь в систему или нет, но у меня возникли некоторые проблемы с распознаванием того, что пользователь вошел в систему.
Прежде всего, если я сделаю следующее:
Client Site > Click Login > Redirect to IdP > Login > Return to client site
Все работает хорошо, и это показывает мне аутентифицированное представление домашней страницы.
Если я пойду другим путем:
Direct to IdP Login Page > Login > Click a link to Client site
Затем я захожу на сайт клиента без проверки подлинности. В моем View или контроллере следующее возвращает false @if (Context.User.Identity.IsAuthenticated)
, хотя я вошел в систему и зашел на сайт.
Если я украшаю домашнюю страницу атрибутом [Authorize] ИЛИ нажимаю ссылку для входа на сайт клиента, я перенаправляюсь на IdP, автоматически регистрируюсь, возвращаюсь на сайт клиента и все работает хорошо. Это первое попадание на сайт клиента, хотя я вошел в систему.
Любые предложения о том, как это лучше всего исправить?