Разрешения Sitefinity для настраиваемого поставщика членства

Я пытаюсь реализовать настраиваемый поставщик членства для Sitefinity. До сих пор фактическое членство (аутентификация, перечисление пользователей и т. д.) работает нормально. Что я хотел бы сделать, так это установить разрешения на сайте для всех, кто входит в систему этого провайдера. Например, предположим, что пользовательский провайдер называется CustomerDBMembershipProvider и предположим, что он захватывает записи из какого-то отдельного хранилища имен пользователей и паролей.

Я хочу, чтобы любой, кто входит в систему с помощью CustomerDBMembershipProvider, имел доступ к просмотру страницы сайта только для клиентов. Как я могу ограничить эту страницу, чтобы ее могли видеть только люди, которые вошли в систему с помощью CustomerDBMembershipProvider?


person Nick Coad    schedule 23.06.2014    source источник


Ответы (1)


Прежде всего, я надеюсь, что правильно понял вашу проблему. тут я думаю два варианта

Вариант 1

  1. Создайте собственный поставщик ролей, реализуйте GetAllRoles, RoleExists, IsUserInRole, GetRolesForUser. Остальное все, что вы можете оставить, пустой метод с throw new NotSupportedException(); В этом поставщике ролей вы получаете список ролей для каждого пользователя из вашего пользовательского источника. Если у вас нет базы данных настраиваемых ролей, вы можете жестко закодировать одну фиксированную роль для этого поставщика ролей.

  2. Интегрируйте этот пользовательский поставщик ролей с sitefinity в файле web.config.

  3. Теперь вы должны увидеть дополнительные роли в диспетчере разрешений страницы. Теперь вы можете предоставить доступ только этой роли для страниц с ограниченным доступом.

Вариант 2.

  1. Создайте новую роль в sitefinity
  2. Назначьте пользователей на роли. Здесь в раскрывающемся списке поставщиков выберите своего поставщика CustomerDBMembershipProvider. Назначьте всем пользователям эту роль.
  3. Измените разрешение требуемой страницы, чтобы разрешить только эту новую роль.

При таком подходе всякий раз, когда к вашему пользовательскому источнику добавляется новый пользователь, вам необходимо сопоставить его с новой ролью, созданной в sitefinity. Если вы можете изменить своего поставщика членства, то в функции ValidateUser после проверки пользователя вы можете добавить пользователю вновь созданную роль sitefinity. Тогда вам не нужно вручную сопоставлять роль в sitefinitiy каждый раз, когда создается новый пользователь.

person Kiran Hegde    schedule 23.06.2014