2013-08-06 5 views
2

Прежде всего, я просто стартер.плюсы и минусы использования сеанса в ASP.NET

Кажется, что сессия является то, что MS не рекомендуют больше, с помощью RESTful веб-сайт, модель всегда будет первым выбором представить все значения, и, возможно, в будущем они будут удалены эту концепцию

Но, мой вопрос в том, вы не можете полагаться на модели, чтобы хранить все о пользователях, должен быть некоторой случае сессия будет лучшим способом, например:

  1. есть страница списка платежей и сессия будет лучшим способом хранить ключевые слова, Caz каждый раз использовать номер страницы щелчка, они не подчиняются контроллеру, поэтому нет способа получить эти данные (они не передаются вообще).

  2. Если мы создаем интернет-сайт для покупок с помощью ASP MVC, сеанс также можно использовать в качестве корзины, если мы храним его в базе данных.

Таким образом, я немного путаюсь, использовать ли сеанс или нет, может ли какой-либо орган дать мне несколько идей о лучших практиках сеанса?

+0

'Кажется, что сеанс - это то, что MS больше не рекомендует, используя RESTFUL website' *** Не могли бы вы опубликовать URL-адрес? *** – Win

+1

Основная причина, по которой сеансы не рекомендуется, заключается в том, что они вводят состояние на стороне сервера. Это очень затрудняет масштабирование приложения по горизонтали, потому что все ваши серверы должны будут работать с одним хранилищем сеансов. REST не имеет ничего общего с сеансами, но он защищает безгражданство. –

+0

В этой статье обсуждается проверка подлинности RESTful: http://stackoverflow.com/questions/3270393/how-do-implement-authentication-the-restful-way (Лично я считаю, HTTPS/Basic рискует без необходимости пароля) ** Con: ** Оплата требует проверки подлинности. Аутентификация, вероятно, будет более сложной без сеанса. –

ответ

3

A Session по-прежнему создан. Session используется от IIS. Просто потому, что это услуга REST не означает, что сеанс отсутствует, это означает, что он использует HTTP-глаголы (например, GET, POST, PUT, DELETE), а не WSDL и SOAP для выполнения операций.

REST - это архитектура, а не технология.

Даже с REST сервис вы могли бы сделать что-то вроде этого:

var cart = Session["Cart"] as ShoppingCart; 
cart.AddItem(...); 

и вы могли бы получить значения для AddItem через POST запрос.

+2

Не говоря уже об аутентификации пользователей. Конечно, было бы больно регистрироваться на каждом запросе страницы, потому что не было сеанса, чтобы показать, что вы уже вошли в систему. (Я полагаю, что клиент может повторно отправить токен безопасности для каждого запроса, но это кажется исключительно экстремальным необходимый для балансированных по нагрузке сред, которые не могут справиться с самым простым разделением сеансов) –

+0

@ebyrob, фантастическое дополнение к теме, спасибо! –

+0

@ebyrob, что сеанс имеет отношение к аутентификации пользователя? Сессия может быть создана независимо от того, аутентифицирован ли пользователь или нет. – Icarus

Смежные вопросы