MVC3 и управление пользователями - PullRequest
1 голос
/ 03 сентября 2011

Я новичок в .NET Framework, но имею большой опыт работы с другими основанными на MVC средами, такими как Symfony и Zend.

У меня есть приложение, которое требует, чтобы участники семинара зарегистрировались, а затем выбрали семинары, в которых они хотели бы участвовать, поэтому у меня есть 3 модели, то есть Семинар, Участник и Регистрация, которые в основном имеют WorkshopID и ParticipantID.

Как мне интегрировать существующее членство или есть какой-либо другой способ записи идентификатора участника в записи после регистрации и выбора желаемых семинаров? С Symfony или Zend это было бы минутным делом, но я не могу понять, как защитить зарегистрированных пользователей и их выбор

Ответы [ 2 ]

1 голос
/ 03 сентября 2011

Если вы хотите связать своих участников с пользователями, лучше всего добавить столбец Guid (userId) в вашу таблицу участников и связать ее с первичным ключом в таблице aspnet_Users.Таким образом вы связываете участника своего домена с пользователем ASP.NET.

0 голосов
/ 03 сентября 2011

Как отмечает Якуб, это проблема бизнес-домена.Похоже, вы не хотите, чтобы авторизация вокруг Enrollments была разрешена, что я и предполагал изначально.Если бы вы были тогда, вы бы смотрели на .NET RoleProvider .

. Он связан с аутентификацией и MembershipProvider и предоставляет быстрый каркас для группировки пользователей в роли безопасности при регистрации следующим образом:

Roles.AddUserToRole(User.Identity.Name, "Workshop");
Roles.RemoveUserFromRole(User.Identity.Name, "Workshop");

Использование AspNetSqlRoleProvider с Sql Server более или менее готово, но с ним связаны некоторые настройки и настройки.

Однако для бизнес-домена для связи между пользователями и зачислениями вы должны отобразить 1-ко-многим, используя уникальный MembershipUser.ProviderUserKey (или свою собственную абстракцию из этого), и сохранить зачисления в своей собственной схеме.

Entity Framework может быть использован для быстрой компоновки схемы базы данных из ваших моделей с использованием кода вначале.

...