Где TempData хранит свои данные? - PullRequest
0 голосов
/ 25 декабря 2018

Существует похожий вопрос от лет назад относительно старого ASP.NET.Мне было интересно, отличается ли это для .NET Core.

В связанном вопросе говорится, что TempData хранится в сеансе, который по умолчанию привязан к одному серверу.Поэтому, чтобы он работал на ферме серверов, мне пришлось бы использовать State Server некоторого типа.

Изменилось ли это поведение в .NET Core для лучшей поддержки веб-ферм?

Ответы [ 2 ]

0 голосов
/ 25 декабря 2018

TempData реализуется поставщиками TempData, использующими файлы cookie или состояние сеанса.По умолчанию куки используются для хранения данных.Но вы можете выбрать использование поставщиков TempData на основе сеанса.

1) Если ваша система уже использует сеанс, то поставщик TempData на основе сеанса прост в использовании.

2) Если ваше приложение работает на сервереферма на нескольких серверах?Для использования поставщика cookie-файлов TempData вне защиты данных не требуется никакой дополнительной настройки.

3) Если небольшой объем данных будет сохранен в tempdata, тогда cookie - лучший вариант.

Имя куки:

AspNetCore.Mvc.CookieTempDataProvider

Вы можете сконфигурировать имя куки, как показано ниже: -

services.Configure<CookieTempDataProviderOptions>(options => options.Cookie.Name = "MyTempDataCookie");

Вы также можете написать свою реализацию ITempDataProvider и зарегистрировать ее вместопо умолчанию.

0 голосов
/ 25 декабря 2018

В ASP.NET Core 2.0 или более поздней версии поставщик TempData на основе файлов cookie используется по умолчанию для хранения данных TempData в файлах cookie.

Источник: https://docs.microsoft.com/en-us/aspnet/core/fundamentals/app-state?view=aspnetcore-2.2#tempdata

...