Перенаправление .net MVC с помощью токена JWT

#c# #asp.net #.net #asp.net-mvc #jwt

Вопрос:

У меня есть приложение MVC в .net framework. Я хотел бы, чтобы контроллер перенаправлял на внешний URL-адрес (контроллер внутри другого проекта в .net core), передавая токен JWT. Возможно ли это?

В настоящее время я пытался использовать RedirectResult для перенаправления на внешний контроллер.

Я не знаю, будет ли это работать с файлами cookie, потому что каждое приложение будет находиться в разных доменах. Могу ли я прикрепить этот токен JWT в перенаправлении, которое выполняется на контроллер в другом приложении?

Ответ №1:

Есть несколько вариантов:

  • Используйте файлы cookie. Если вы перенаправляетесь на один и тот же домен (или поддомен, я думаю), это сработает, но если вы перенаправляете через домены, это не сработает.
  • Используйте свой контроллер для прокси-сервера всего запроса. Вместо перенаправления ваш сервер выполняет запрос, добавляя любые дополнительные заголовки, необходимые для аутентификации. Вероятно, это вариант, который, скорее всего, подойдет вам, но имейте в виду, что он добавляет дополнительную нагрузку на сервер.
  • Включите jwt в URL-адрес перенаправления в качестве параметра запроса. Это работает только в том случае, если URL, на который вы перенаправляете, проверяет параметры запроса. Это также делает jwt очень небезопасным, поэтому, если у вас нет другого выбора, кроме этого варианта, убедитесь, что вы даете jwt очень короткий срок службы, то есть одну минуту, и ограничьте его точной операцией/конечной точкой, для которой, как вы ожидаете, пользователь будет его использовать.