Каков наилучший способ передачи ** чувствительных данных ** от одного контроллера метода действия к другому контроллеру метода действия контроллера - PullRequest
0 голосов
/ 30 мая 2019

Здесь я использую TempData["Amount"] для передачи общей суммы корзины из одного действия контроллера в другой метод действия. поэтому я сомневаюсь, что хорошей практикой является использование TempData["Amount"] передачи чувствительной информации из одного метода действия в другой метод действия. что такое время жизни данных (например, sessions 20 минут) и как обрабатывать исключение TempData["Amount"].

if (adoptionDetails != null)
      {
        foreach (var m in adoptionDetails.animalAdaptionDetails.ToList())
          {
            amount += Convert.ToInt32(m.amount);
            animalNames += m.name;
             animalNames += ",";
           }
        ViewBag.Amount = amount;
        ViewBag.animalsName = animalNames;
        TempData["Amount"] = amount;
        return View(adoptionDetails);
       }
else
     {
        return View("~/Views/Users/Errorpage.cshtml");
      }

Ответы [ 2 ]

0 голосов
/ 30 мая 2019

Вы можете начать думать об этом по-другому.

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

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

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

0 голосов

TempData привязывается к пользователю по той же логике, которая связывает сессию с пользователем.

TempData доступна только для следующего запроса, отправленного тем же сеансом, после которого она автоматически удаляется.

TempData хранится в памяти на сервере, только когда вы вставляете его в ответ, он передается клиенту.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...