这是我的代码的一部分:
public void ConfigureServices(IServiceCollection services)
{
options.Events = new CookieAuthenticationEvents() {
OnValidatePrincipal = async (c) =>
{
//using (ServiceProvider serviceProvider = builder.Services.BuildServiceProvider()) // ASP0000
//{
// var userManager = serviceProvider.GetRequiredService<UserManager<MyUser>>();
//var myUser = await userManager.GetUserAsync(c.Principal);
//if (myUser != null && !myUser.EmailConfirmed)
//{
// c.RejectPrincipal();
//}
//}
}
};
});
}
取消注释时,它可以工作,但是 BuildServiceProvider 方法上有一个警告(绿色下划线)说:
ASP0000:从应用程序代码调用 BuildServiceProvider 会导致创建单例服务的附加副本。
那么在 ConfigureServices 中获取 UserManager 的替代方法是什么?我不能注入它,因为 ConfigureServices 方法只接受零个或一个参数,它必须是 IServiceCollection。