| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Разработка под ASP.NET > Разграничение прав |
| Автор: D_EMO_N 3.1.2008, 17:58 |
| Подскажите как на сайт при добавить проверку пользователя при загрузке каждойстраницы? Суть проблемы заключается в том что есть некая БД, зависимая от сайта. Когда пользователь логинится его проверяют на тот какие у него права, потом ему видны соответсвующие разделы сайта. Но разделы при отображении в строке адреса прописываются с соотв ID, и если пользователь просто поменяет ID в стране адреса то он увидит аналогичную страницу но с другим содержимым. я так понял, что страница заполняется данными в соотв с тем какой ИД стоит в адресе. Но при этом пользователь может производить все манипуляции с этой страницей так, как будто он залогинился с соотв. полномочиями. ЗЫ. Всех поздравляю с Новым Годом, всем всего наилучшего, успехов и карьерного роста. |
| Автор: Mymik 4.1.2008, 10:04 |
| Предлагаю поставить в Application_BeginRequest проверку на полномочия пользователя. Т.е. поставить там проверку, мол если пользователь залогинен, то проверять из какой он страны и если страна не совпадает с адресной строкой, то кидать его на специальную страницу типа "YouStupidHacker.aspx" с текстом "Простите, вы из другой страны" |
| Автор: D_EMO_N 4.1.2008, 11:00 |
| Вопрос решил, почитав немного и поспрашивав. И я вопрос не корректно задал: Есть БД с организациями(можно и странами), организации имеют иерархическую структуру, есть пользователи которые могут иметь доступ только к этой организации(если она является самой низжей в дереве организаций) или к этой и её потомкам. Мое решение выглядит следующим образом: залогинившийся пользователь принадлежит к какой-то орг., эта орг. имеет левый и правый индекс, соотв индекс её детей будет находиться в промежутке между левым и правым индексом этой орг. Т.е. при запросе пользователя отобразить страницу (просто в адресе поменял цифру) будет проверять можно ли отобразить или нет. А вот где можно почитать как это сделать? Как определяется пользователь я не знаю так как сайт без *.cs файлов, ои все в dll скомпилены. |
| Автор: Mymik 4.1.2008, 11:17 |
| Если все в Dll то уже никак :(... ну точнее открываешь http://www.aisto.com/roeder/dotnet/ открываешь им dll и смотришь исходный код А можешь унаследоваться от нужного тебе класса, переопределить немного Page_Load (ихний код из рефлектора, плюс свой дописать) А вообще я думаю, что лучший способ это в Application_BeginRequest засунуть проверку. |
| Автор: D_EMO_N 4.1.2008, 11:47 | ||||
| за Reflector спасибо. По поводу проверки - где узнать как это делается? Я только начинаю программированием заниматься. Ну вот благодаря рефлектору у меня есть доступ к исходным кодам, а где там узнать как проверяется пользователь?
из web.config
код из файла логина, но про то как именно сопоставляет пароль\логин пользователя с БД не нашел... но в БД есть этот пользователь, приписанный к орг. как вытащить эту строчку? что-то наподобие выбор этого параметра где пользователь=@текущий, вот как определить текущего? |
| Автор: Mymik 4.1.2008, 21:23 | ||
текущий пользователь храниться в
А вообще, скорее всего там используется membership... его можно найти в web.config там он одноименной сексии указывается где хранится этот провайдер. Ну а дальше опять лазь и смотри. НО. Это не дело переписывать такую громоздкую систему. Попроси чтобы тебе дали исходный код, либо напиши свой провайдер. сложно тебе прийдется :( |