Можно ли динамически изменять разрешения ролей, а также генерировать соответствующую карту сайта / меню в ASP.NET? - PullRequest
1 голос
/ 29 июня 2010

Я провожу некоторые исследования по безопасности и картам сайтов в ASP.net и, к сожалению, не хватает времени. Я не слишком много работал с безопасностью ASP.net, поэтому я не совсем уверен, правильно ли я направляюсь.

Вот моя проблема:

У меня есть общедоступный веб-сайт (т.е. в Интернете), на котором любой пользователь может зарегистрироваться. Сайт будет разработан с использованием веб-форм ASP.net. Эти пользователи могут создавать других пользователей и назначать им разные роли.

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

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

Типы пользователей (роли) должны быть сохранены в базе данных. Права пользователя (к каким страницам может иметь доступ каждый тип) также должны быть сохранены в базе данных.

Вот что я думаю сделать:

  1. Реализация встроенной в ASP.net настройки авторизации и аутентификации с использованием файла web.config
  2. Использование файлов Sitemap для динамического создания меню / хлебных крошек из базы данных

Я полагаю, что можно сделать второе с использованием пользовательских провайдеров (пожалуйста, исправьте меня, если я ошибаюсь). Но я не совсем уверен, возможно ли динамически настроить файл web.config.

Полагаю, это скорее ответ «да / нет», но я просто хотел бы убедиться, что я не пойду не в том направлении. Я буду использовать VS2008 и .net 3.5 framework.

Большое спасибо.

1 Ответ

1 голос
/ 17 декабря 2010

Да, можно делать то, что ты говоришь. Вы можете динамически создавать карты сайта, используя пользовательский SiteMapProvider, см. Этот артикул http://www.codeproject.com/KB/aspnet/dynamicsitemap.aspx.

Вы также можете изменить web.config во время выполнения, используя XmlReader или, если хотите, просто прочитав его в строку и проанализировав элемент авторизации. Я бы поместил его в отдельный файл, используя configSource:

Тогда вам нужно всего лишь изменить этот файл и не беспокоиться о том, чтобы испортить web.config

...