如何在现有数据库中使用Identity成员资格(n层)

Bra*_*tie 12 asp.net-mvc entity-framework multi-tier asp.net-identity

我一直在阅读有关使用各种其他问题,但是当项目以层级开发时,我没有看到任何关于在现有数据库中使用它的具体内容.为了论证,请说以下是真的:

    • WebUI中
    • 服务
      • UserService
    • 数据
      • MyDbContext
    • 核心
      • 用户

如何User(从Core项目中)指定IUserStore新的身份提供者?我错过了什么,或者这一切都假设网站和会员数据库总是驻留在同一个项目中(或者Microsoft.AspNet.Identity.*模型所在的库有严格的引用)?

在WebUI层设置DbContext只是为了进行身份验证(并将其与服务绑定到"MyDbContext")似乎很容易.我错过了什么,或者只是计划在这个团队只用于简单的应用程序?

反馈将不胜感激.

更多信息

如果值得一提:

  • 这将是一个全新的解决方案; 我没有旧的/现有的aspnet_*webpages_*桌子担心.我正在尝试采用各种其他自定义解决方案并将它们绑定到一个可靠的解决方案中,因此我对很多选项持开放态度.但是,我希望按层分类(尽可能).

jd4*_*d4u 3

Asp.net 身份框架是一组帮助应用程序使用用户身份的组件。核心框架块正在Microsoft.AspNet.Identity.Core组装中。第二个Microsoft.AspNet.Identity.EntityFramework是Core框架的数据持久化实现。

现在,对于 n 层应用程序,您可以AppUser在任何项目/程序集中定义模型。您需要从 继承它Microsoft.AspNet.Identity.EntityFramework.IdentityUser。因此,根据您的方法,您需要引用特定的程序集。

MyDbContext 也是如此。您必须继承当前唯一可用的 Persistence Microsoft.AspNet.Identity.EntityFramework.IdentityDbContext<TUser>。您的 MyDbContext 可以位于其他项目/程序集中。AppUser您还需要在此项目/程序集中引用您的程序集。