Как хранить как публичных, так и внутренних пользователей, используя идентичность 2.0 - PullRequest
0 голосов
/ 06 июня 2018

У меня есть приложение, которое содержит общедоступных и внутренних пользователей.

  • публичный пользователь: зарегистрируйте пользователей через форму, FaceBook или Google.
  • внутренний пользователь: те, кто платитдля управления контентом.Они принадлежат одной или нескольким ролям.

В настоящее время оба типа пользователей хранятся в таблицах AspNetUsers.Общедоступные пользователи имеют только одну роль, а именно общедоступного пользователя, и назначаются пользователю при успешной регистрации.Внутренние пользователи могут иметь любые роли, если им назначены.

Я весьма обеспокоен тем, что каким-то публичным можно назначать некоторые роли и выполнять действия в системе.

Не могли бы вы сказать мне, как устранить это?проблема?

Должен ли я разделить два вида пользователей на отдельные таблицы?

1 Ответ

0 голосов
/ 06 июня 2018

Не могли бы вы рассказать, как устранить эту проблему?

Если единственное различие между этими двумя типами пользователей заключается в их ролях, тогда просто используйте столбец флага IsPrivate вВаша таблица пользователей.После этого на странице управления ролями убедитесь, что вы всегда имеете дело с пользователями, у которых есть столбец IsPrivate == true.Вы можете пойти дальше, создав отдельные классы PublicUser и PrivateUser, производные от IdentityUser.И используйте Таблица на иерархию (IsPrivate будет использоваться в качестве дискриминатора).

В вашем DbContext у вас будет два DbSet один для PublicUser и другой дляPrivateUser.Последний должен использоваться для управления ролями пользователей.

Должен ли я разделить два типа пользователей на отдельные таблицы?

Нет.Если единственное различие с этими двумя типами пользователей заключается только в роли, к которой они прикреплены, тогда используйте одну таблицу и убедитесь, что на ней установлен дискриминатор, как я уже говорил выше.Если между ними есть и другие различия, чем просто прикрепленные роли, вы можете посмотреть Таблица по типу или Таблица по бетону .

...