В чем причина исключение FormatException?

Ссылка скопирована
1 ответ

Написал скрипты регистрации и входа, регистрация так жн с Identity, она работает как раз в отличии от входа.
Исключение:

В чем причина исключение FormatException?

Код входа:

public async Task<IActionResult> OnPostAsync() {     var user = new User() { Email = UserDto.Email, PasswordHash = UserDto.Password };         SignInResult result =         await _signInManager.PasswordSignInAsync(             user,             user.PasswordHash,             isPersistent: false,             lockoutOnFailure: false);      if (result.Succeeded)     {         return RedirectToPage("UserInfo");     }      return Page(); }

public async Task<IActionResult> OnPostAsync() { var user = new User() { Email = UserDto.Email, PasswordHash = UserDto.Password }; SignInResult result = await _signInManager.PasswordSignInAsync( user, user.PasswordHash, isPersistent: false, lockoutOnFailure: false); if (result.Succeeded) { return RedirectToPage("UserInfo"); } return Page(); }

Пароль и почта обычные, использовал только буквы, цифры, точку и @. Что то вроде amir2928@gmail.com и пароль qwerty123.

Дополнительно:

у тебя с клиента приходит точно строка в base64? какой тип кодирования формы тут вообще?

  • Не совсем понял про base64. Тип кодировки формы Utf8.
  • PasswordHash = UserDto.Password
    Ты почему-то пароль пытаешься запихнуть туда, где ожидается хэш пароля.
    Тебе нужно:
    1. Захэшировать пароль
    2. Хэш закодировать в base64
    и его уже передать в _signInManager

    Ответы:

    1. Убери строку var user = new User.........
    2. signInManager.PasswordSignInAsync(userDto.Email, userDto.Password......

    Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Юрий Linux Ответ

    Исключение FormatException может быть выброшено в случае, когда происходит ошибка форматирования данных, например, при попытке преобразовать строку в формате, который не соответствует ожидаемому. Это может произойти, например, при использовании методов парсинга данных, форматирования чисел или дат, или при работе с регулярными выражениями.

    Основная причина выбрасывания исключения FormatException заключается в том, что данные, с которыми работает ваш код, не соответствуют ожидаемому формату. Например, если вы пытаетесь преобразовать строку в число, а строка содержит символы, отличные от цифр, то возникает ошибка форматирования и выбрасывается исключение FormatException.

    Для того чтобы избежать исключения FormatException, важно предварительно проверять данные на соответствие ожидаемому формату перед их обработкой. Это можно сделать с помощью условных операторов или методов проверки данных на соответствие определенному шаблону.

    Пример использования исключения FormatException в PHP:

    try {
        $number = intval("abc");
    } catch (FormatException $e) {
        echo "Ошибка форматирования данных: " . $e->getMessage();
    }

    try { $number = intval("abc"); } catch (FormatException $e) { echo "Ошибка форматирования данных: " . $e->getMessage(); }

    В данном примере мы пытаемся преобразовать строку "abc" в число с помощью функции intval. Так как строка содержит символы, отличные от цифр, будет выброшено исключение FormatException. Мы ловим это исключение в блоке try-catch и выводим сообщение об ошибке.

    Таким образом, следует всегда учитывать возможность исключения FormatException при работе с данными различных форматов и предусмотреть соответствующую обработку ошибок для более надежного и корректного выполнения программы.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно