>问题是您需要知道用户类(TUser(才能从DI获取SignInManager,而这对于外部组件(例如控制器我分离的lib(是未知的(...
另外,是否有任何官方方法可以检查标识是否添加到中间件链中?
更新 - 由于一些混乱:
如果您开发自己的框架,其中包含使用身份进行授权的后端,是否可以编写一个在您的库中的登录控制器/视图,并且仍然允许使用您的框架的开发人员使用例如他们自己的用户类、DbContext 等来扩展身份框架?
我的主要问题是如何在不知道底层通用用户类的情况下掌握登录管理器(从 DI(......
希望这能让事情更清楚:)
找到了某种解决方案/解决方法... 您仍然需要知道用户类型(但不一定在运行时(,然后您可以从 DI 获取 signInManager,执行以下操作:
var userType = typeof(ApplicationUser);
var signInManagerType = typeof(SignInManager<>).MakeGenericType(userType);
var signInManager = ServiceProvider.GetServices(signInManagerType);