<ContentTemplate>
        <h2>Only Admins will see this</h2>
      </ContentTemplate>
    </asp:RoleGroup>
    <asp:RoleGroup Roles="Contributor">
      <ContentTemplate>
        <h2>This is for contributors!</h2>
      </ContentTemplate>
    </asp:RoleGroup>
    <asp:RoleGroup Roles="Reader, Designer">
      <ContentTemplate>
        <h2>This is for web designers and readers</h2>
      </ContentTemplate>
    </asp:RoleGroup>
  </RoleGroups>
</asp:LoginView>

Элемент управления LoginView в приведенном коде отображает различное содержимое для зарегистрированных пользователей и для пользователей, назначенных специфическим ролям. Например, для пользователей в роли Admin он отображает текст "Only Admins will see this" ("Это могут видеть только администраторы"), в то время как для пользователей из роли Contributor отображается текст "This is for contributors!" ("Это только для ассистентов!"). Также для пользователей, одновременно ассоциированных с ролями Contributor, Reader и Designer, первым соответствующим шаблоном является <asp:RoleGroup> для Contributor. Другие группы ролей просто не будут отображаться. Так, например, LoggedInTemplate будет отображаться только для аутентифицированных пользователей без соответствующего элемента <asp:RoleGroup>. Как только подходящая группа ролей для пользователя найдена, содержимое LoggedInTemplate не отображается.

Программный доступ к Roles

Как и в случае с Membership API, представленным в главе 21, служба Roles включает API, который позволяет выполнять все задачи непосредственно в коде. Вы можете программно добавлять новые роли, читать информацию о ролях и удалять их прямо из своего приложения. Более того, вы можете ассоциировать пользователей с ролями, а также извлекать пользователей, ассоциированных с определенной ролью. Все это можно делать, вызывая методы класса Roles.

Большинство свойств, включенных в класс Roles, просто отображаются на установки дескриптора <roleManager>, описанные в табл. 23.1. Поэтому табл. 23.4 включает только дополнительные свойства и методы класса Roles, которые можно использовать для программного доступа и управления службой Roles.

Хорошее применение программного доступа к ролям — автоматическая ассоциация пользователей с ролями при их самостоятельной первичной регистрации. Конечно, это удобно только для определенных ролей. Предположим, что ваше приложение поддерживает роль под названием Everyone, и каждый индивидуальный пользователь должен быть членом этой роли. Если вы регистрируете пользователя сами, то можете установить это отношение вручную. Но если ваше приложение поддерживает авторегистрацию для пользователей Internet, вы не можете этого делать. Поэтому нужно как-то обеспечивать автоматическую ассоциацию каждого пользователя с ролью Everyone.

предыдущая    следующая страница    вначало главы    оглавление

944

Hosted by uCoz