У меня есть приложение, которое использует Microsoft.AspNetCore.Identity.UserManager для управления пользователями. Использую ядро 2.2. UserManager внедряется с помощью встроенной инъекции зависимостей в мои службы (не мной). нравится:
public MyService(UserManager<IdentityUser> userManager)
{
_userManager = userManager;
}
Когда я впервые пытаюсь получить пользователя по идентификатору (FindByIdAsync), я вижу в консоли запрос к базе данных. Следующие запросы с тем же идентификатором. Я не вижу никаких запросов к 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? Укажите мне, где можно получить информацию о том, как долго хранится этот кеш.