2014-11-06 4 views
0

Я только начинаю MVC, и я хотел бы знать, лучшие практики, чтобы передать конфиденциальную информацию, как идентификаторы во просмотров ...MVC лучшая практика прохождения идентификаторов через просмотров

Давайте предположим, что у меня есть сценарий. У меня есть автосервис, управляющий приложением MVC, который позволяет пользователям выбирать продукт для своего зарегистрированного автомобиля.

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

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

На странице товара с покупкой они могут выбирать различные продукты A или B, и когда они выбирают, они перенаправляются на страницу проверки.

То, что я хочу достичь сейчас, находится на странице проверки, как безопасно мы можем носить идентификатор автомобиля, который пользователь получает после того, как он зарегистрировал свой идентификатор автомобиля и продукта в предыдущем представлении продукта, чтобы я мог обрабатывать транзакции с идентификатором пользователя, carID, и productID.

Сессионный способ пойти с этим? Или любой другой лучший способ решить эту проблему.? Кто-то с маленьким примером будет большой помощью для меня.

Спасибо,

+0

Возможно, вам стоит взглянуть на [учебник по музыкальному магазину MVC] (http://www.asp.net/mvc/overview/older-versions/mvc-music-store/mvc-music-store-part-1), чтобы увидеть, как они реализуют это, и вы могли бы рассмотреть возможность использования одной из бесплатных корзин для электронной коммерции с открытым исходным кодом, таких как [nopCommerce] (https://nopcommerce.codeplex.com/) –

+0

Просто сохраните ее в базе данных против идентификатор пользователя. Вы должны избегать сеанса для этого. – heymega

+0

Почему я должен избегать сеанса? – superted

ответ

0

В вашем примере, приведенном я бы, конечно, рекомендуем хранить идентификатор сеанса. Веб - это безгрешный зверь, и то, что вы по сути делаете, - это состояние записи в течение всего времени посещения пользователя на веб-сайте/приложении - это, по сути, то, что предназначены для сеансов.

Создание, хранение и извлечение данных из сеанса проста и может быть сделано следующим образом:

Установка переменной в объекте сеанса

[HttpPost] 
public ActionResult Login(int carId) 
{ 
    ... 
    Session["carId"] = carId; 
    ... 
} 

Получение переменной из объекта Session

public ActionResult Load() 
{ 
    ... 
    int carId = Session["carId"]; 
    ... 
} 

Хотя это основной пример e, он дает вам представление о том, как хранить/извлекать простые типы данных из сеанса.

Для хранения дополнительной информации, например больших объектов, вы можете использовать атрибут класса [Serialize]outlined in my answer in this post.