Я недавно унаследовал большой проект .NET, для которого требуется исправление роли. Различные роли имеют разный доступ к сайту, и некоторые элементы должны быть скрыты соответственно в отношении роли текущего пользователя.Унаследованный .NET 4.0 Веб-проект - Атрибуты для управления и обработки роли
Учитывая довольно гибкую и модульную архитектуру, это было достаточно легко реализовать, когда пользователи пытаются получить доступ к частям сайта, к которому у них нет доступа. Тем не менее, я столкнулся с проблемами при аутентификации видимости элементов управления.
Многие элементы управления были реализованы с помощью собственных элементов управления, связанных с конкретным проектом, однако ссылки в основном реализуются через HtmlAnchors, а некоторые другие поля, попадающие в ограниченную категорию, также являются универсальными элементами html.
Есть ли способ, которым я могу исправить это с помощью универсального адаптера, или мне нужно рыться в огромном массиве элементов управления и элементов, присутствующих в проекте, и заставить их наследовать общую базу, где это можно реализовать сингулярно? Ручной труд в этом случае будет означать лот работы, и я не совсем уверен, что это даже правильный подход в конце.
В принципе, существует ли способ заставить все элементы управления и элементы страницы проверять, должны ли они отображаться или нет в веб-проекте .NET 4.0? И могу ли я каким-то образом его исправить, чтобы все элементы могли принимать и обрабатывать новый атрибут, который описывает их «уровень ограничения»?
Спасибо, это заставило меня задуматься. Я просмотрю программное обеспечение и посмотрю, что нужно сделать - может быть, мне действительно придется пройти многое из того, что уже сделано, и попытаться обобщить подход, чтобы я мог передавать атрибуты элементам управления , –
Хорошо, теперь самое разумное решение в моем сознании, похоже, таково: Пройдите весь проект и настройте все связанные элементы управления таким образом, чтобы они наследовали проектный блок рендеринга, который имеет общедоступное свойство, которое определяет его роль - ограничение (в программе изображается небольшая переменная строка). Затем, когда мы создаем эти блоки, мы должны иметь возможность легко их скрыть. Это непросто, но в будущем это должно быть наиболее легко поддерживаемым и модульным. Любые мысли об этом подходе? –
Я не совсем понимаю ваш предложенный подход, и я определенно не понимаю ваш проблемный домен, но похоже, что LoginView действительно может быть самым простым решением. На самом деле, вы имеете дело с пользовательскими элементами управления или пользовательскими элементами управления? Я думаю, это имеет значение здесь. –