我正在设置一个新的ASP.NET Core项目,在我的MVC项目中,我希望使用Identity进行用户注册/登录等。
我可以编写自己的,但我真的想在控制器和操作中使用授权属性。
但是,我想将Identity部分提取到一个单独的项目中,因此我的MVC项目与Entity / DBContexts没有直接的依赖关系。
使用Identity创建新的MVC项目时,会创建:
除了参考:
有没有简单的方法可以将所有身份代码提取到一个单独的项目中,我的控制器只使用该项目中的服务(注入控制器的构造函数中)?
答案 0 :(得分:0)
保持项目引用在层之间分离以便UI / MVC层不直接引用Db /存储层的方法是在项目的其他层中的IServiceCollection上创建扩展方法。
因此,UI引用了Business / Services层并调用了业务/服务层中存在的IServiceCollection的扩展方法,这些方法又可以调用Db / Storage层中的扩展方法。
与示例here
类似的问题但是当您将EF代码移动到单独的类库中时,存在一些已知的问题,即运行EF命令以生成迁移不起作用。您可以通过使类库成为具有自己的Startup类的应用程序/控制台应用程序来解决这个问题。我的理解是这将在以后解决。