У меня есть страница с несколькими сетками и небольшая форма с 7 элементами управления. Сетки показывают вспомогательные данные. В целом имеется около 320 строк кода, которые обрабатывают различные события. У меня есть требование, чтобы одна конкретная роль должна была редактировать только 3 поля из 7, тогда как все другие роли, имеющие доступ к этой странице, могут редактировать все из них.ASP.NET: безопасность на основе ролей и дизайн страницы
Теперь на мой вопрос. Обычно мы применяем подход к ограничению защиты на основе ролей на уровне страницы, поскольку, делая эту безопасность в .Net, становится полностью настраиваемой. Но в этом случае я собираюсь сделать исключение из-за этого требования, и это новая территория, на которой у меня нет шаблонов. Объем дублирования кода, который мне нужно будет сделать, чтобы создать отдельную страницу для роли с доступом только к 3 элементам управления, делает это не вариантом, даже если я поместил некоторые вещи в пользовательские элементы управления, что кажется неоправданным количеством работы так или иначе.
Моя первая мысль состояла в том, чтобы отключить все элементы управления в событии page_load, которые недоступны для текущего пользователя, но это кажется уродливым. Есть ли лучший способ сделать это?
Мне нравится ваш подход. – cdonner