В моем приложении MVC у меня есть страница для пользователя, редактирующего данные своей учетной записи, такие как адрес электронной почты, пароль и т. Д. В моей базе данных таблица User содержит эти данные, а первичный ключ - UserId.
НаПредставление ChangeAccountDetails, которое я создал, я передаю ViewModel с данными, которые пользователь должен иметь возможность изменять в своей учетной записи.Я также сохраняю UserId в ViewModel, который отображается в скрытом поле на моем реальном представлении.У меня есть опасение, что это небезопасно по той причине, что при действии POST для сохранения измененных данных мой сервисный уровень загружает постоянную версию данных учетной записи пользователя, которые были только что изменены с помощью идентификатора пользователя, отправленного обратно во ViewModel.
Я использовал Fiddler для изменения запроса POST и изменил UserId на UserId другой записи пользователя в моей базе данных, это может иметь серьезные проблемы, поскольку кто-то может потенциально изменить чей-либо пароль и / или другие данные таким образом.
Пожалуйста, кто-нибудь может посоветовать, как мне избежать такой проблемы при использовании ViewModels.Неужели использование Session в этом случае является единственным способом (я знаю, что лучше избегать использования Session, но как насчет этого)?