TempData将数据存储在哪里?

时间:2018-12-24 21:16:06

标签: .net asp.net-core .net-core asp.net-core-2.2

几年前有一个similar question关于旧的ASP.NET。我想知道.NET Core是否有所不同。

在链接的问题中,它指出TempData存储在Session中,该Session默认情况下绑定到单个服务器。因此,要使其在服务器场上工作,我必须使用某种类型的状态服务器。

.NET Core是否已更改此行为以更好地支持Web场?

2 个答案:

答案 0 :(得分:1)

  

在ASP.NET Core 2.0或更高版本中,基于cookie的TempData提供程序为   默认情况下用于将TempData存储在cookie中。

来源:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/app-state?view=aspnetcore-2.2#tempdata

答案 1 :(得分:1)

TempData由TempData提供程序使用cookie或会话状态实现。 默认情况下,使用cookie来存储数据。但是您可以选择使用基于会话的TempData提供程序。

1)如果您的系统已经在使用会话,那么基于会话的TempData提供程序将易于使用。

2)如果您的应用程序在多台服务器上的服务器场中运行? ,不需要其他配置即可在Data Protection之外使用cookie TempData提供程序。

3)如果要在tempdata中存储少量数据,则cookie是最佳选择。

饼干名称:

AspNetCore.Mvc.CookieTempDataProvider

您可以如下配置cookie的名称:-

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

您还可以编写ITempDataProvider的实现并注册该实现,而不是默认的实现。