我有一个使用 Microsoft.AspNetCore.Identity.UserManager 来管理用户的应用程序。我使用核心 2.2。UserManager 是通过我的服务中的内置依赖注入(不是我)注入的。像这样:
public MyService(UserManager<IdentityUser> userManager)
{
_userManager = userManager;
}
当我第一次尝试通过 Id (FindByIdAsync) 获取用户时,我在控制台中看到对 db 的请求。具有相同 ID 的下一个请求我没有看到对 db 的任何请求,但应用程序工作并获得了用户。
在 Startup.cs 我没有 userManager 的配置。我只是使用扩展方法:
public void ConfigureServices(IServiceCollection services)
{
services
.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(
Configuration.GetConnectionString("MyConnectionString"));
services
.AddIdentity<IdentityUser, IdentityRole>()
.AddEntityFrameworkStores<ApplicationDbContext>()
services.AddMvc();
var configService = new ConfigurationService(Configuration);
services
.AddIdentityServer()
.AddDeveloperSigningCredential()
.AddInMemoryApiResources(configService.GetApiResources())
.AddInMemoryClients(configService.GetClients())
.AddTestUsers(configService.GetUsers());
}
问题:也许有一种方法可以在 UserManager 中配置此缓存功能?指出从哪里获取有关此缓存保留多长时间的信息。