几年前有一个similar question关于旧的ASP.NET。我想知道.NET Core是否有所不同。
在链接的问题中,它指出TempData存储在Session中,该Session默认情况下绑定到单个服务器。因此,要使其在服务器场上工作,我必须使用某种类型的状态服务器。
.NET Core是否已更改此行为以更好地支持Web场?
答案 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的实现并注册该实现,而不是默认的实现。