TempData 在哪里存储其数据?

Ang*_*ker 3 .net .net-core asp.net-core asp.net-core-2.2

多年前就有一个关于旧 ASP.NET 的类似问题。我想知道 .NET Core 是否有所不同。

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

.NET Core 是否改变了这种行为以更好地支持网络场?

小智 5

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

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

2)如果您的应用程序在多个服务器上的服务器场中运行?,无需额外配置即可在数据保护之外使用 cookie TempData 提供程序。

3)如果要在tempdata中存储少量数据,那么cookie是最好的选择。

饼干名称:

AspNetCore.Mvc.CookieTempDataProvider
Run Code Online (Sandbox Code Playgroud)

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

services.Configure<CookieTempDataProviderOptions>(options => options.Cookie.Name = "MyTempDataCookie");
Run Code Online (Sandbox Code Playgroud)

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