MembershipProvider, IPrincipal, IIdentity?

У меня есть концептуальный вопрос... Я делаю приложение Intranet (веб-платформу) для компании. У меня есть SQL Server DB с этими таблицами:

Users (userID, userName, userPass, roleID)
Roles (roleID, roleName)
Pages (pageID, pageURL)
RolesXPages(pageID, roleID)

Как лучший способ создать структуру для хранения всей этой информации, когда пользователь перемещает сайт, я имею в виду, что в потоке я должен быть в состоянии проверить его роль, его страницы (те, к которым он может получить доступ). У меня есть читал, и там много чего там, где я смутился, я видел классы MembershipProvider, IPrincipal, IIdentity и т.д., но я не уверен, что должно быть лучшим для меня.

Любые мысли...

Спасибо заранее!

Edit: Каждый раз становится более запутанным... Я просто хочу обрабатывать эти структуры во время выполнения и быть в состоянии mantain state во время обратных вызовов страниц или смены страниц...

+2
24 мар. '10 в 20:04
источник поделиться
3 ответа

Обычно я использую MembershipProvider, RoleProvider и ProfileProvider. Похоже, что это решит все ваши проблемы.

http://www.4guysfromrolla.com/articles/120705-1.aspx

MemberhipProvider позволяет использовать ряд встроенных элементов управления asp.net, таких как login, loginstatus, userwizard.

RoleProvider позволяет создавать и управлять пользователями членства в ролях и управлять доступом к различным областям приложения с помощью web.config

ProfileProvider позволяет вам в основном расширить учетную запись пользователей Membership, чтобы добавить все свойства, которые вы хотите использовать в своей учетной записи.

+2
24 мар. '10 в 20:12
источник

Если вы строите что-то совершенно новое, я думаю, что вы можете посмотреть встроенную систему членства и ролей в asp.net, особенно Поставщик роли сервера Sql.

+1
24 мар. '10 в 20:13
источник

При членстве ASP.NET вы захотите запрограммировать код модели asp.net MembershipProvider. Если можно, я бы выбрал любой пользовательский код для аутентификации и ролей и использовал существующую модель поставщика. Затем напишите некоторый код для обработки доступа на уровне страницы.

IPrincipal - довольно голые кости, и это может быть быстрее, если вы должны использовать пользовательские таблицы, которые вы указали. Надежда, которая помогает

+1
24 мар. '10 в 20:14
источник

Посмотрите другие вопросы по меткам или Задайте вопрос