URL-путь с% 2B прерывает маршрутизацию - PullRequest
0 голосов
/ 03 октября 2019

У меня есть основной веб-сайт asp.net, работающий в контейнере (mcr.microsoft.com/dotnet/core/aspnet:3.0-nanoserver-1809)

Это развернуто в службе приложений Azure (которая теперьзапускает контейнеры Windows)

Основное приложение asp.net обслуживает Blazor Spa (статический веб-сайт) на /index.html, а также предоставляет остальные API-интерфейсы для путей, начинающихся с / api

Проблема в том, что у меня есть следующая страница / маршрут для блейзора:

@ page "/ ConfirmEmail / {UserId: int} / {Token}"

Это совпадает с путями типа / ConfirmEmail /1 / foobar, который работает как положено.

Однако, если вы добавите% 2B в часть пути {Token}, произойдет сбой:

enter image description here

Это проблематично, поскольку эти токены генерируются Microsoft Identity с использованием провайдера токенов защиты данных, который генерирует токены, содержащие символы +, которые при кодировании URL приводят к% 2B

. происходят для приложения, размещенного в службе приложений Azure, это нене происходит, когда я запускаю свое приложение локально - маршрутизация с путями, содержащими% 2B, работает нормально. Поэтому я не думаю, что это проблема с Blazor или роутером Blazor, но я на всякий случай пометил Blazor.

...