Какой хороший способ обрезать графический интерфейс веб-сайта ASP.NET? - PullRequest
1 голос
/ 18 сентября 2008

Я обрезал пользовательский интерфейс нашего сайта, выполнив в событии onload этого элемента управления следующее:

btnDelete.isVisible = user.IsInRole("can delete");

Это стало очень утомительно, потому что есть так много элементов управления, чтобы проверять снова и снова. Как только я все заработал, дизайнеры просят изменить пользовательский интерфейс, и тогда он начинается заново.

Есть предложения?

Ответы [ 4 ]

3 голосов
/ 18 сентября 2008

Одно простое предложение - сгруппировать элементы управления в панели на основе прав доступа

2 голосов
/ 18 сентября 2008

Вы можете думать о ситуации неправильно. Вместо того, чтобы думать об отдельных элементах управления, думайте об этом с точки зрения деловых ролей и того, что они способны сделать. Это идет вместе с группированием элементов управления в панели для прав доступа. Например, возможно, только менеджеры имеют возможность удалять и делать другие вещи, а у вас есть роль для менеджеров, которых вы проверяете. Таким образом, если есть изменения, вы можете просто переместить пользователей в разные роли. Деловые правила не должны резко меняться. Всегда будет происходить тонкая настройка, поскольку новые должности приобретают все большую ответственность, но такое мышление должно сводить к минимуму количество изменений, которые необходимо внести.

2 голосов
/ 18 сентября 2008

Что-то, что я делал раньше, было создание пользовательского класса страницы (на самом деле, я делаю эту часть в каждом проекте), который наследует каждая страница ASP.NET.

Этот класс страниц содержит свойство IsAdmin.

Затем я делю подклассы часто используемых элементов управления, которые могут или не могут быть видны между режимами, в пользовательские элементы управления и добавляю код для проверки свойства Pages IsAdmin.

Все это может быть час работы, но если вы создаете страницы с использованием этих элементов управления, они автоматически управляют своим режимом.

Еще один забавный совет, позволяющий сэкономить время, - это если вам нужно перелистывать страницу из режима только для чтения. Я добавил свойство в основной базовый класс, а затем добавил пользовательский элемент управления, который отображает текстовое поле в одном режиме и метку в другом.

Опять же, немного времени на компоненты, но затем вы можете создать версию страницы только для чтения в 2 строки кода ... Очень того стоит.

1 голос
/ 18 сентября 2008

Быстрая и грязная опция использует элементы управления asp: loginview, которые можно связать с ролями пользователей.

Не такой элегантный, как опция пользовательского класса страниц, предложенная Джонатаном, и может быть немного хитом производительности, если они будут по всей странице.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...