В чем причина исключение FormatException?
Написал скрипты регистрации и входа, регистрация так жн с Identity, она работает как раз в отличии от входа.
Исключение:
Код входа:
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? какой тип кодирования формы тут вообще?
PasswordHash = UserDto.Password
Ты почему-то пароль пытаешься запихнуть туда, где ожидается хэш пароля.
Тебе нужно:
1. Захэшировать пароль
2. Хэш закодировать в base64
и его уже передать в _signInManager
Ответы:
1. Убери строку var user = new User.........
2. signInManager.PasswordSignInAsync(userDto.Email, userDto.Password......
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос

Исключение FormatException может быть выброшено в случае, когда происходит ошибка форматирования данных, например, при попытке преобразовать строку в формате, который не соответствует ожидаемому. Это может произойти, например, при использовании методов парсинга данных, форматирования чисел или дат, или при работе с регулярными выражениями.
Основная причина выбрасывания исключения FormatException заключается в том, что данные, с которыми работает ваш код, не соответствуют ожидаемому формату. Например, если вы пытаетесь преобразовать строку в число, а строка содержит символы, отличные от цифр, то возникает ошибка форматирования и выбрасывается исключение FormatException.
Для того чтобы избежать исключения FormatException, важно предварительно проверять данные на соответствие ожидаемому формату перед их обработкой. Это можно сделать с помощью условных операторов или методов проверки данных на соответствие определенному шаблону.
Пример использования исключения FormatException в PHP:
try { $number = intval("abc"); } catch (FormatException $e) { echo "Ошибка форматирования данных: " . $e->getMessage(); }
В данном примере мы пытаемся преобразовать строку "abc" в число с помощью функции intval. Так как строка содержит символы, отличные от цифр, будет выброшено исключение FormatException. Мы ловим это исключение в блоке try-catch и выводим сообщение об ошибке.
Таким образом, следует всегда учитывать возможность исключения FormatException при работе с данными различных форматов и предусмотреть соответствующую обработку ошибок для более надежного и корректного выполнения программы.