Как проверить параметры, поступающие в тело запроса ⇐ C#
Как проверить параметры, поступающие в тело запроса
Я работаю над API для своего задания в колледже, где мне и двум моим друзьям нужно создать довольно сложное приложение. Я знаю, что есть много вещей, которые можно сделать лучше, но речь не об этом. У меня есть следующий код для регистрации нового пользователя:
app.MapPost("/register", async (RegistrationInput inp, ThreeMoronsContext db) => { вар HashingResult = PasswordMegaHasher.HashPass(inp.password); пытаться { Пользователь UserToRegister = новый() { Идентификатор = Guid.NewGuid(), Логин = inp.login, Пароль = HashingResult.hashpass, Соль = ХэшингРезультат.salt.ToString(), Имя = входное имя, Фамилия = инп.фамилия, Отчество = вв.отчество, UserClassId = inp.UserClassId }; ждут db.Users.AddAsync(UserToRegister); //ждем db.SaveChangesAsync(); вернуть Результаты.ОК(UserToRegister); } улов (исключение) { return TypedResults.BadRequest(exc.Message); } }); ThreeMoronsContext — это DbContext, полученный из EntityFrameworkCore. Регистрационный вход:
общедоступная запись RegistrationInput (строка логина, строка пароля, строковое имя, строковая фамилия, строковое отчество, int UserClassId) Я хочу применить некоторую проверку к RegistrationInput, чтобы, например, длина логина составляла от 5 до 20 символов, имя содержало только кириллические буквы и так далее. Я пробовал применить [StringLength] и [RegularExpression], но мне кажется, что я совершенно не понял назначение таких атрибутов, поскольку когда я пробовал, например, этот ввод:
"логин": "s", "пароль": "hashme123", "имя": "123", "фамилия": "с", "отчество": "сс", «ИдКлассаПользователя»: 1 Я получил ответ 200 о создании нового пользователя:
{ "id": "caf3796e-ba8d-4583-8c43-e69020a03353", "имя": "123", "фамилия": "с", "отчество": "сс", "логин": "с", "пароль": "q6anLJxltC2Wf7443xRjwbOxCLZ5SXT9LdtSDOVceRk=", «userClassId»: 1, "группы": [], «userClass»: ноль, "salt": "System.Byte[]" } Что мне следует сделать, чтобы применить проверку к данным, поступающим из тела запроса?
Я работаю над API для своего задания в колледже, где мне и двум моим друзьям нужно создать довольно сложное приложение. Я знаю, что есть много вещей, которые можно сделать лучше, но речь не об этом. У меня есть следующий код для регистрации нового пользователя:
app.MapPost("/register", async (RegistrationInput inp, ThreeMoronsContext db) => { вар HashingResult = PasswordMegaHasher.HashPass(inp.password); пытаться { Пользователь UserToRegister = новый() { Идентификатор = Guid.NewGuid(), Логин = inp.login, Пароль = HashingResult.hashpass, Соль = ХэшингРезультат.salt.ToString(), Имя = входное имя, Фамилия = инп.фамилия, Отчество = вв.отчество, UserClassId = inp.UserClassId }; ждут db.Users.AddAsync(UserToRegister); //ждем db.SaveChangesAsync(); вернуть Результаты.ОК(UserToRegister); } улов (исключение) { return TypedResults.BadRequest(exc.Message); } }); ThreeMoronsContext — это DbContext, полученный из EntityFrameworkCore. Регистрационный вход:
общедоступная запись RegistrationInput (строка логина, строка пароля, строковое имя, строковая фамилия, строковое отчество, int UserClassId) Я хочу применить некоторую проверку к RegistrationInput, чтобы, например, длина логина составляла от 5 до 20 символов, имя содержало только кириллические буквы и так далее. Я пробовал применить [StringLength] и [RegularExpression], но мне кажется, что я совершенно не понял назначение таких атрибутов, поскольку когда я пробовал, например, этот ввод:
"логин": "s", "пароль": "hashme123", "имя": "123", "фамилия": "с", "отчество": "сс", «ИдКлассаПользователя»: 1 Я получил ответ 200 о создании нового пользователя:
{ "id": "caf3796e-ba8d-4583-8c43-e69020a03353", "имя": "123", "фамилия": "с", "отчество": "сс", "логин": "с", "пароль": "q6anLJxltC2Wf7443xRjwbOxCLZ5SXT9LdtSDOVceRk=", «userClassId»: 1, "группы": [], «userClass»: ноль, "salt": "System.Byte[]" } Что мне следует сделать, чтобы применить проверку к данным, поступающим из тела запроса?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение