Если вы идете по пути на основе ролей, ASP.NET (начиная с версии 2.0) имеет множество доступных элементов управления членством, которые могут помочь в этом сценарии. Предполагая (и это может быть ошибочным предположением), что вы используете входящий в комплект провайдер членства, вы можете фактически использовать элемент управления LoginView
для обработки # 1.
Способ работы состоит в том, что LoginView
может использовать RoleGroups
и связанные с ним ContentTemplates
для настройки представления для пользователя в зависимости от роли. Это работает без проблем с провайдером членства в коробке; Я полагаю, что если вы создадите своего собственного поставщика услуг членства на основе технологии Microsoft, это также будет работать. (Я не сделал этот последний шаг.)
Возможно, вы могли бы использовать его для # 2, но это привело бы к дублированию кода и усилиям, что не является моим личным предпочтением. Я думаю, что ваш выбор использования специфичных для роли представлений SQL для управления этой таблицей может быть лучше, чем этот вариант. (Конечно, есть и другие варианты, которые могут быть лучше.)
Я поддержу рекомендацию Илии Мэнор об использовании разрешений вместо ролей. Вообще, это и мои предпочтения. (И я был удивлен, обнаружив, что технология провайдера членства не достигла этого уровня.) Однако в любом сценарии, ориентированном на разрешения, вам, по сути, придется свернуть все самостоятельно. (Я сделал это, и хотя он очень гибкий, код для защиты любой данной страницы может стать проблематичным.)
РЕДАКТИРОВАТЬ: я прошу прощения; Я хотел включить ссылку для элемента управления LoginView. На DotNetJunkies есть учебник .