TempData 在哪里存储它的数据?
Where does TempData store its data?
多年前有一个 similar question 关于旧的 ASP.NET。我想知道 .NET Core 是否有所不同。
在链接的问题中,它指出 TempData 存储在 Session 中,默认情况下它与单个服务器相关联。因此,要使其在服务器场上运行,我必须使用某种类型的状态服务器。
.NET Core 是否改变了此行为以更好地支持网络场?
In ASP.NET Core 2.0 or later, the cookie-based TempData provider is
used by default to store TempData in cookies.
来源:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/app-state?view=aspnetcore-2.2#tempdata
TempData 由 TempData 提供程序使用 cookie 或会话状态实现。
默认情况下,cookie 用于存储数据。但是您可以选择使用基于会话的 TempData 提供程序。
1) 如果您的系统已经在使用会话,那么基于会话的 TempData 提供程序很容易使用。
2) 如果您的应用程序 运行 在多台服务器上的服务器场中? , 在数据保护之外使用 cookie TempData 提供程序不需要额外的配置。
3)如果要在临时数据中存储少量数据,那么 cookie 是最佳选择。
Cookie 名称:
AspNetCore.Mvc.CookieTempDataProvider
您可以配置cookie的名称如下:-
services.Configure<CookieTempDataProviderOptions>(options => options.Cookie.Name = "MyTempDataCookie");
您还可以编写 ITempDataProvider 的实现并注册它而不是默认的。
多年前有一个 similar question 关于旧的 ASP.NET。我想知道 .NET Core 是否有所不同。
在链接的问题中,它指出 TempData 存储在 Session 中,默认情况下它与单个服务器相关联。因此,要使其在服务器场上运行,我必须使用某种类型的状态服务器。
.NET Core 是否改变了此行为以更好地支持网络场?
In ASP.NET Core 2.0 or later, the cookie-based TempData provider is used by default to store TempData in cookies.
来源:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/app-state?view=aspnetcore-2.2#tempdata
TempData 由 TempData 提供程序使用 cookie 或会话状态实现。 默认情况下,cookie 用于存储数据。但是您可以选择使用基于会话的 TempData 提供程序。
1) 如果您的系统已经在使用会话,那么基于会话的 TempData 提供程序很容易使用。
2) 如果您的应用程序 运行 在多台服务器上的服务器场中? , 在数据保护之外使用 cookie TempData 提供程序不需要额外的配置。
3)如果要在临时数据中存储少量数据,那么 cookie 是最佳选择。
Cookie 名称:
AspNetCore.Mvc.CookieTempDataProvider
您可以配置cookie的名称如下:-
services.Configure<CookieTempDataProviderOptions>(options => options.Cookie.Name = "MyTempDataCookie");
您还可以编写 ITempDataProvider 的实现并注册它而不是默认的。