ASP.NET MVC Использование идентификаторов в URL - PullRequest
1 голос
/ 02 сентября 2010

Я знаю, что маршруты по умолчанию в MVC включают параметр id, который часто отображается на идентичность объекта, поскольку он хранится в базе данных.Часто это нормально, но что если вы не хотите, чтобы кто-то мог им манипулировать?Откровенно говоря, во многих бизнес-приложениях это очень распространено.Например, вы не хотите, чтобы кто-то изменил номер учетной записи (не лучший пример, но вы поняли) в URL по понятным причинам.Таким образом, вам нужно будет проверять номер учетной записи по зарегистрированному пользователю при каждом запросе.Очевидно, что это нереалистичное решение, и в веб-формах многие люди сохраняют что-то подобное в сессии.Я пытаюсь очень мало полагаться на сессию в MVC, но кроме этого я бы просто пошел в старую школу и использовал скрытые поля?

Как другие подходят к этому?

Ответы [ 2 ]

1 голос
/ 02 сентября 2010

На самом деле, для обеспечения безопасности вы все равно должны проверять права аутентифицированных пользователей на каждый запрос.Возможно, вы можете расширить атрибут Authorize, чтобы он лучше соответствовал вашим потребностям.А скрытое поле немного лучше, чем параметр url, поскольку его легко изменить с помощью инструментов разработчика IE или Firebug.

0 голосов
/ 02 сентября 2010

В одном из мест, где я работал, был обработан способ проверки реферера в объекте Request.Если реферер был пустым или нет в текущем домене, не показывайте им страницу.

Request.UrlReferrer

На самом деле все получилось.

...