Skip to content

Instantly share code, notes, and snippets.

@xto3na
Created August 8, 2015 23:19
Show Gist options
  • Save xto3na/d161b99a689f55cf3c24 to your computer and use it in GitHub Desktop.
Save xto3na/d161b99a689f55cf3c24 to your computer and use it in GitHub Desktop.
ASP.NET Совмещение системы аутентификации со своей бд.
Сам же вопрос заключается в том, как объединить классы, созданные Identity (т.е. информацию об аккаунтах) и существующую базу данных
Почитай Julie Lerman. Code First Approach. Глава 5 - "Using Conventions and Configurations
for Database Mappings". Там всего 28 страниц. Старая БД в своей основной таблице должна иметь определенные поля, необходимые для Asp Identity. Поэтому, чтобы не ковырять схему старой БД, проще создать новую и ручками скопировать данные из старой.
Текущая версия Asp.net identity создает 5 таблиц: (далее дефолтные имена, которые можно переопределить)
1.AspNetUsers - основная таблица с пользователями. Cхема таблицы соответствует типу IdentityUser.
2.AspNetRoles - таблица с ролями для Role-based authentication.
3.AspNetUserRoles - join-таблица для Ролей и Пользователей.
4.AspNetUserClaims - таблица для хранения Claims. - IdentityUserClaim<TKey>
5.AspNetUserLogins - таблица для хранения, скажем так, различных способов входа. Cхема соответствует типу IdentityUserLogin<TKey>.
4 и 5 используются для Claims-based authentication. Про claims хорошо объясняется тут.
По факту все, что вам нужно сделать, это:
1. Создать класс, производный от IdentityUser. Добавить в него соответствующие свойства, отображающиеся на столбцы основной таблицы пользователей из старой БД. - для этого надо их явно сконфигурировать.
2. Создать копию старой базы.
3. Создать новую базу.
4. Ручками скопировать уже имеющиеся данные из старой базы в новую.
5. Профит.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment