2010-04-06 7 views
0

Я создаю сайт, которому нужны пользователи, созданные с разными ролями и разрешениями для доступа к различным областям сайта.Членство и asp.net MVC

Я с использованием MVC 2, но я не могу найти много четких указаний по использованию инструмента членства с MVC для создания учетных записей и ролей и т.д.

Я попробовал инструмент конфигурации веб, который работает, но я хотел бы администрировать удаленно.

Я использовал инструмент aspnet_regsql, чтобы получить доступ к SqlMembershipProvider Schema в моей базе данных.

Мне также нужно добавить дополнительную информацию к пользователю, например, информацию о профиле и картинку, добавить ли я их в таблицы членства или создать для этого отдельные таблицы?

Любые советы или помощь были бы действительно полезными?

Благодаря

Jemes

ответ

4

Я всегда находил, что лучше создать собственный поставщик членства, а не использовать службу членства по умолчанию ASP.NET по умолчанию, которую вы получаете бесплатно с помощью инструмента regsql. Не бойтесь открыть службу членства в учетной записи (потомка IMembershipService) и начать с ней играть.

Первое, что я делаю при запуске нового проекта ASP.NET MVC 2, - это избавить классы учетной записи до простого провайдера и использовать мою собственную таблицу Users в моей базе данных SQL Server.

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

Прежде всего, попросите своих пользователей. Затем вернитесь и создайте свои таблицы ролей, если у вас есть ваши пользователи, работающие и заходящие в систему.

+0

Если я создаю свой собственный провайдер, функции, такие как Authorize, по-прежнему работают над мои контроллеры? – Jemes

+0

@ Джемс Абсолютно. Создавая свой собственный, вы действительно просто говорите провайдеру, где искать своего пользователя. Вы просто скажете, чтобы он смотрел на таблицу ваших пользователей, а не на то, что предоставляет проект по умолчанию. –

+0

Спасибо за помощь. Что означает «переводить классы учетной записи в простой провайдер»? – Jemes

2

Это тот же механизм, как и в ASP.NET. http://aspnet.4guysfromrolla.com/articles/120705-1.aspx http://netrsc.blogspot.com/2009/04/membership-management-for-aspnet-mvc.html

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

+0

Вы используете встроенную систему членства или создали свой собственный провайдер? – Jemes

+0

Всегда встроенный членский состав. Вообще я думаю, что бывают ситуации, когда вы используете свои собственные, но это не очень часто. Возможно, некоторые более крупные или более специальные проекты. Рассмотрим ремонтопригодность. swhook прав, что это не особенно сложно, но IMHO очень часто является чрезмерной работой. – nubm

+0

Ну, если вы хотите создать своего собственного провайдера, вы сможете определить, что еще вам приносит. Если ничего или вы не знаете, просто придерживайтесь встроенного членства. – nubm

Смежные вопросы