繁体   English   中英

如何在单独的类库中使用EF 6.0在ASP.Net核心项目中设置标识

[英]How to set up Identity in an ASP.Net core project using EF 6.0 in a separate class library

不久前,我问了有关将EF与ASP.Net core一起使用的问题 ,并且效果很好。 现在,我想添加ASP.Net身份,我想知道最好的方法是将身份逻辑添加到具有常规/非核心EF的单独项目中,还是添加到具有EF核心的主核心项目中,等等。 我看到很多页面都在讨论EF核心,但是我更喜欢在所有地方使用相同的上下文,并且我更喜欢使用当前正在使用的常规EF。 我正在这里寻找一种干净/最佳实践的方法,我一直在使用常规EF,因为据我所知,EF core 1.0不支持存储的proc,并且无论如何我都希望继续使用数据库优先方法。 感谢任何使我摆脱流沙的帮助。

注意:我的“用户”表(称为“其他”)中已有一些现有的配置文件数据。 我打算将此用作“身份用户”表。

您是否考虑过拥有可以根据现有身份数据库发行令牌的显式身份服务?

IdentityServer4是一个OpenId Connect提供程序。 支持EF,以便您可以使用现有的用户数据执行身份验证。

现在的发展方向是.NET Core,如果拥有一个单独的项目来处理使用IdentityServer4和EF Core的身份,这将是朝着这个方向迈出的良好一步。

ASP.Net Identity Framework专为“代码优先”而设计,通常会尝试为您生成其表。 我不确定它是否能够首先运行数据库,但我认为您可以按以下方式使其工作:

  1. 使用身份/个人用户帐户创建一个单独的临时项目/解决方案。
  2. 将临时数据库中的数据结构插入主数据库,将AspNetUsers与User表合并。
  3. 删除临时项目/解决方案和数据库。
  4. 更新EF6项目中的模型。 这应该引入新表。
  5. 将Identity Framework添加到您的ASP.Net Core项目,并引用EF6项目中的数据库上下文。

我没有尝试过,但是与Identity Framework一起工作了很多时间,我看不出为什么它不起作用的原因。

进一步阅读:

数据库优先身份: 使用Asp.Net身份数据库优先方法

用户表的自定义表名: 使用Visual Studio 2013 ASP.NET Identity时如何更改表名?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM