Маркер сброса AspCore по умолчанию содержит недопустимые символы? - PullRequest
0 голосов
/ 23 марта 2020

Я пытаюсь настроить токены сброса с помощью пользовательской страницы Blazor. Генерация токенов работает просто отлично, используя

            var code = await _userManager.GeneratePasswordResetTokenAsync(user);

. Он сгенерировал следующий код

CfDJ8HVZ73lJc0lGiTBiTdeoRRd//Zc1LM0Q4P+8t7DLaBzwlQ2DuvY2HQ5CWE/E8b3VdlZZYIelpwwrCFz579CeCcQTf+YIPli7KpPTuUpMcTHDs5pAw3XifV7x+5Y/Q6WAPdixXuHE8We9QQRxl7Hnba2vjoJ5fCZ9FMHKpkOq3mxDhgYi/gba2Vse3/R87ztVrisEguYvYQ8h5f2MAVMiCB+H0TakjKjpj2ANAD9wQ2H8

Для отправки по почте требуется кодировка, как можно увидеть на по этой ссылке , давая мне

            var callbackUrl = _globals.AppUrl
            + "/user/reset/"
            + System.Web.HttpUtility.UrlEncode(code);

Теперь письмо успешно отправлено, а URL успешно закодирован. Однако при открытии страницы я получаю сообщение об ошибке 404.11

The request filtering module is configured to deny a request that contains a double escape sequence.

Объявление страницы:

@page "/user/reset/{Code}"

Пример URL:

https://localhost:44303/user/reset/CfDJ8HVZ73lJc0lGiTBiTdeoRRfumtSdRgb46HPXLklW0j42IyjqN8rv%2fapJG158YfIrR7dVRNRF2YxJydegd2CMlvm93FTcjkuBwnVPC3N9AtSigiy8VOqeW1nNrRth73urJ23D0V6M2c%2fzE1%2bTuFs8KbB%2fnCG5CE3UnFXG5HleeA%2fwtlyzLgbP4Zrbi5XZ4Q0w4%2b1j83J%2fXvQUqg%2fO5raSkmcO3cb1TGnDWz%2fwqxW%2fbNOe

Вопрос

Включает ли ASP Core Identity символы, которые не могут быть отправлены по электронной почте по умолчанию? (Я бы взял символ «+»). И можем ли мы тогда исключить из поколения? Или есть другой способ манипулирования URL, предотвращающий эту ошибку. Я предпочитаю оставлять фильтр двойных escape-символов включенным, так как он повышает безопасность

Редактировать

При кодировании всего URL-адреса следующим образом:

        var callbackUrl = _globals.AppUrl
            + "/user/reset/"
            + code;
        callbackUrl = HtmlEncoder.Default.Encode(callbackUrl);

Возникает ошибка 404, потому что код содержит «/», что не соответствует моей маршрутизации

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...