Для моего первого приложения ASP.NET MVC 3 я использую таблицы aspnet_Users
и aspnet_Roles
, чтобы обеспечить аутентификацию для моих пользователей и для нескольких ролей.Это, кажется, работает довольно хорошо.Кроме того, я хочу связать вошедшего в систему пользователя и строки в разных таблицах.
В качестве конкретного примера у меня есть таблица Recipes
, в которой есть столбцы, специфичные для рецептов (имя, даты, атрибуты), а также столбец UserID
.Этот столбец UserID
в настоящее время является внешним ключом для таблицы Users
в моем IceCreamDB (НЕ для таблицы aspnet_Users
в aspnetdb), которая содержит различную доменную информацию о пользователях системы.Итак, достаточно просто создать запрос, который извлекает все рецепты Мэтта, создав пользователя в моей таблице «Пользователи» с именем Matt, у которого есть некоторый целочисленный UserId, а затем используйте этот UserId при создании и обновлении таблицы Recipes
.Отлично.
Чтобы связать вошедшего в систему пользователя «itsmatt» (из таблицы aspnet_Users) с моей пользовательской таблицей IceCreamDB UserId для Matt, в таблице IceCreamDB Users есть столбец Guid, который заполняется идентификатором aspnet_Users(это Guid) для входа в систему.
Таблица пользователей IceCreamDB:
UserId 1 // primary key used as FK for other tables
UserName Matt
Phone 555-1212
Department Product Development
Building 2-A
Office 221
UserGuid 7fc75a6c-7e32-43f3-be8c-be0122bf54cb // Guid from aspnetdb User table
И это работает нормально - в рамках процесса регистрации пользователей я создаю aspnet_User, устанавливаю любые роли (например, «Администраторы», «Владельцы»)."," Производство "), а затем создайте запись пользователя в таблице пользователей IceCreamDB, скопировав Guid в новую строку.Это позволяет мне зайти на сайт и посмотреть мои рецепты или мои заказы.
Но я чувствую, что я сам приготовил это решение, и, вероятно, есть лучший, другой подход к этому.Я хотел бы получить некоторые рекомендации по этому вопросу.