Поскольку интерфейс RoleProvider, по-видимому, рассматривает роли не что иное, как простые строки, мне интересно, существует ли какой-либо неаккуратный способ применения необязательного значения для роли для каждого пользователя ,Расширение поставщиков роли ASP.NET
Наша текущая система управления входами реализует роли в качестве пар ключ-значение, где часть значения является необязательной и обычно используется для уточнения или ограничения разрешений, предоставляемых ролью.
Например, роль «редактор» может содержать пользовательский барри, но для «барри» он будет иметь необязательное значение «хищники», которое система интерпретирует как означающее, что Барри может редактировать только статьи, поданные в категория «хищников».
Я видел в другом месте предложение просто создавать дополнительные разделенные роли, такие как «editor.raptors» или somesuch. Это не идеальный вариант, потому что это сильно раздует число ролей, и я могу сказать, что это будет очень трудная продажа, чтобы заменить нашу текущую реализацию (которая также очень не идеальна, но имеет то преимущество, сделанный для работы с нашей пользовательской базой данных).
Я уже могу сказать, что упомянутый выше метод конкатенации потребует много утомительного разделения строк и частичного согласования.
Есть ли лучший способ?
EDIT: Моя первоначальная цель состояла в использовании более встроенных функций ASP.NET. Например, контролируйте доступ через <authorization/>
элементов в Web.config. Выполнение этого, насколько я вижу, требует выполнения самих ролей. Концепция наших современных систем auths, похоже, очень хорошо отличалась от этого ограничения.
Отвечая на вопросы mnemosyn в
- Да. У нас есть центральная база данных для пользователей, приложений и их полномочий. Это основная система, и вокруг нее не обойтись.
- В настоящее время наша система не является иерархической, и на самом деле она требует больших усилий для поддержания. Когда приложение создается, определяется набор полномочий (например, «admin», «пользователь», «poweruser», «gatekeeper», «keymaster» и т. Д.). Затем пользователи связываются с этими полномочиями с необязательным значением для уникальной комбинации полномочий пользователя и (приложения).
- Можете ли вы рассказать об этих «категориях», о которых вы говорите?
Я обновил свой вопрос, чтобы обсудить некоторые из поднятых вами моментов. –