#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 очень короткий срок службы, то есть одну минуту, и ограничьте его точной операцией/конечной точкой, для которой, как вы ожидаете, пользователь будет его использовать.