Как использовать членство в Identity с существующей базой данных (n-level)

Я читал различные другие questions об использовании , но я не вижу ничего конкретного в отношении использования его с помощью существующая база данных, когда проект разрабатывается на уровне. Для аргумента, скажем, верно следующее:

  • Решение
    • WebUI
    • Услуги
      • UserService
    • Данные
      • MyDbContext
    • Основной
      • Пользователь

Как я могу указать User (из проекта Core) как IUserStore для нового поставщика удостоверений? Я что-то упускаю, или все это предполагает, что сайт и база данных членства всегда находятся в одном проекте (или существуют строгие ссылки на библиотеки Microsoft.AspNet.Identity.*, где бы ни находились модели)?

Настройка DbContext на уровне WebUI только для аутентификации (и привязка его к "MyDbContext" с помощью службы) кажется взломанной. Я что-то упустил, или команда просто планировала, что это используется только в простых приложениях?

И обратная связь будет оценена.

Дополнительная информация

если стоит упомянуть:

  • Это будет совершенно новое решение; У меня нет старых/существующих таблиц aspnet_* или webpages_*, о которых нужно беспокоиться. Я пытаюсь принять различные другие пользовательские решения и привязать их к одному твердому решению, поэтому я открыт для множества вариантов. Тем не менее, я хотел бы, чтобы вещи были разбиты слоем (если это вообще возможно).

Ответ 1

Asp.net Identity Framework - это набор компонентов, помогающих приложениям работать с User Identity. Базовые блоки ядра находятся в Microsoft.AspNet.Identity.Core сборке. Второй Microsoft.AspNet.Identity.EntityFramework - это реализация сохранения данных для основной структуры.

Теперь для n-уровневого приложения вы можете определить свою модель AppUser в любом проекте/сборке. Вам нужно наследовать его из Microsoft.AspNet.Identity.EntityFramework.IdentityUser. Поэтому, основываясь на вашем подходе, вам нужно указать конкретную сборку.

То же самое для MyDbContext. Вы должны унаследовать от имеющегося в настоящее время только Persistence Microsoft.AspNet.Identity.EntityFramework.IdentityDbContext<TUser>. MyDbContext может быть в другом проекте/сборке. Вам также нужно сослаться на сборку AppUser в этом проекте/сборке.