MembershipProvider, IPrincipal, IIdentity? - PullRequest
2 голосов
/ 24 марта 2010

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

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

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

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

Заранее спасибо!

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

Ответы [ 3 ]

2 голосов
/ 24 марта 2010

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

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

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

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

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

1 голос
/ 24 марта 2010

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

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

1 голос
/ 24 марта 2010

Если вы создаете что-то совершенно новое, я думаю, что вы должны взглянуть на встроенную систему членства и роли в asp.net, особенно Sql Server Role Provider.

...