Я использую аутентификацию .NET, приложение (Razor Pages) не подтвердило учетную запись, потому что код нулевой, но он существует в ссылке, почему?
Я развернул базу данных и приложение на бесплатном хостинге, потому что думал, что это причина, но это не так.
я думаю проблема здесь: var confirmCode = HtmlEncoder.Default.Encode(callbackUrl);
да что это значит?
Я предполагаю, что ваш код добавляет дополнительные &
я добавляю 2 фотографии для проблемы, вы можете их проверить?
Почему вы кодируете URL?
это идентификатор леса по умолчанию от Microsoft, я исправил его и удалил кодировку. спасибо за ваше замечание об этом :)
я думаю проблема здесь:
var confirmCode = HtmlEncoder.Default.Encode(callbackUrl);
Да, это. Кодировка HTML используется для кодирования HTML для отображения на веб-странице. Он преобразует символы HTML в их сущности (например, <
становится <
, а &
становится &
), чтобы вы не вставляли настоящий HTML на свою страницу.
При кодировании URL вместо этого следует использовать метод WebUtility.UrlEncode
: https://learn.microsoft.com/en-us/dotnet/api/system.net.webutility.urlencode?view=net-7.0, затем URL -безопасные символы, такие как &
, не изменяются, и ваша строка запроса правильно понимается компоновщиком модели.
я удалил этот код:
var confirmCode = HtmlEncoder.Default.Encode(callbackUrl);
и отправьте «callbackUrl» вместо «confirmCode».
Мне кажется, что
&code
это то, что вы получаете