.NET MVC и безопасная передача данных между страницами - PullRequest
3 голосов
/ 03 июня 2009

сначала немного фоновой информации. Я использую веб-формы большую часть своей карьеры и недавно заинтересовался .NET MVC. Я понимаю, что он предназначен для лиц без гражданства, однако я не понимаю, как это вполне осуществимо. В приложении форм пользователь аутентифицируется, и я возвращаю идентификатор пользователя и некоторые роли, которые затем помещаются в этот сеанс пользователя. Когда я нуждаюсь в них, все, что я должен сделать, это вытащить это из сессии, и у меня есть это. Из того, что я прочитал, сессия и MVC являются взаимоисключающими. Я читал, что можно использовать TempData для передачи значений, но он сохраняется только в течение одного посещения страницы, а затем его нет. Есть ли стандартный способ, которым данные могут быть «сохранены» на сайте MVC, кроме добавления избыточного кода к каждому контроллеру, куда я хочу передать данные?

Ответы [ 2 ]

4 голосов
/ 03 июня 2009

Я думаю, здесь может быть некоторая путаница. То, что действительно не имеет состояния, это протокол HTTP. ASP.NET WebForms - это технология, разработанная для того, чтобы попытаться создать инфраструктуру, которая «обходила» отсутствие HTTP-состояния без сохранения состояния, и создать инфраструктуру веб-приложений с сохранением состояния. Вот почему вы видите такие вещи в WebForms, как ViewState, который, по сути, переносит состояние приложения по каналу.

ASP.NET MVC пришел и принял другой подход. Он охватывает безгражданство HTTP. Вот почему в MVC нет ViewState.

Однако это не означает, что вы больше не взаимодействуете с объектами с состоянием. Клиентский компьютер (например, браузер) является приложением с состоянием, так же как сервер, на котором выполняется код на стороне сервера (в данном случае IIS или любой другой), также является состоянием.

Следовательно, все, что находится на стороне сервера, все еще находится в состоянии (например, Session, Application, Cache), и вы все равно можете их использовать. Кроме того, на стороне клиента также отслеживается состояние, поэтому сценарии на стороне клиента стали такими мощными в последние годы; люди, пытающиеся в полной мере использовать возможности браузера.

2 голосов
/ 03 июня 2009

ASP.NET MVC Framework построен на платформе ASP.NET, и поэтому вы можете использовать состояние сеанса в ASP.NET MVC:

Session["MyVar"] = "SomeValue";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...