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