![]() |
Модераторы: gambit |
![]() ![]() ![]() |
|
D_EMO_N |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 114 Регистрация: 20.11.2007 Репутация: нет Всего: нет |
Подскажите как на сайт при добавить проверку пользователя при загрузке каждойстраницы?
Суть проблемы заключается в том что есть некая БД, зависимая от сайта. Когда пользователь логинится его проверяют на тот какие у него права, потом ему видны соответсвующие разделы сайта. Но разделы при отображении в строке адреса прописываются с соотв ID, и если пользователь просто поменяет ID в стране адреса то он увидит аналогичную страницу но с другим содержимым. я так понял, что страница заполняется данными в соотв с тем какой ИД стоит в адресе. Но при этом пользователь может производить все манипуляции с этой страницей так, как будто он залогинился с соотв. полномочиями. ЗЫ. Всех поздравляю с Новым Годом, всем всего наилучшего, успехов и карьерного роста. |
|||
|
||||
Mymik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1474 Регистрация: 12.5.2006 Где: Lamer-центер Репутация: 50 Всего: 78 |
Предлагаю поставить в Application_BeginRequest проверку на полномочия пользователя. Т.е. поставить там проверку, мол если пользователь залогинен, то проверять из какой он страны и если страна не совпадает с адресной строкой, то кидать его на специальную страницу типа "YouStupidHacker.aspx" с текстом "Простите, вы из другой страны"
![]() -------------------- |
|||
|
||||
D_EMO_N |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 114 Регистрация: 20.11.2007 Репутация: нет Всего: нет |
Вопрос решил, почитав немного и поспрашивав. И я вопрос не корректно задал:
Есть БД с организациями(можно и странами), организации имеют иерархическую структуру, есть пользователи которые могут иметь доступ только к этой организации(если она является самой низжей в дереве организаций) или к этой и её потомкам. Мое решение выглядит следующим образом: залогинившийся пользователь принадлежит к какой-то орг., эта орг. имеет левый и правый индекс, соотв индекс её детей будет находиться в промежутке между левым и правым индексом этой орг. Т.е. при запросе пользователя отобразить страницу (просто в адресе поменял цифру) будет проверять можно ли отобразить или нет. А вот где можно почитать как это сделать? Как определяется пользователь я не знаю так как сайт без *.cs файлов, ои все в dll скомпилены. |
|||
|
||||
Mymik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1474 Регистрация: 12.5.2006 Где: Lamer-центер Репутация: 50 Всего: 78 |
Если все в Dll то уже никак :(... ну точнее открываешь reflector открываешь им dll и смотришь исходный код
![]() А можешь унаследоваться от нужного тебе класса, переопределить немного Page_Load (ихний код из рефлектора, плюс свой дописать) А вообще я думаю, что лучший способ это в Application_BeginRequest засунуть проверку. -------------------- |
|||
|
||||
D_EMO_N |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 114 Регистрация: 20.11.2007 Репутация: нет Всего: нет |
за Reflector спасибо.
По поводу проверки - где узнать как это делается? Я только начинаю программированием заниматься. Ну вот благодаря рефлектору у меня есть доступ к исходным кодам, а где там узнать как проверяется пользователь?
из web.config
код из файла логина, но про то как именно сопоставляет пароль\логин пользователя с БД не нашел... но в БД есть этот пользователь, приписанный к орг. как вытащить эту строчку? что-то наподобие выбор этого параметра где пользователь=@текущий, вот как определить текущего? Это сообщение отредактировал(а) D_EMO_N - 4.1.2008, 12:30 |
||||
|
|||||
Mymik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1474 Регистрация: 12.5.2006 Где: Lamer-центер Репутация: 50 Всего: 78 |
текущий пользователь храниться в
А вообще, скорее всего там используется membership... его можно найти в web.config там он одноименной сексии указывается где хранится этот провайдер. Ну а дальше опять лазь и смотри. НО. Это не дело переписывать такую громоздкую систему. Попроси чтобы тебе дали исходный код, либо напиши свой провайдер. сложно тебе прийдется :( -------------------- |
|||
|
||||
tol05 |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1632 Регистрация: 21.12.2006 Где: Харьков Репутация: 34 Всего: 170 |
D_EMO_N,
у тебя есть строка
функция Authenticate() класса SecUser скорее всего и лезет в базу за информацией. Копай ее рефлектором.
мда... не то слово. -------------------- На хорошей работе и сны хорошие снятся. |
||||||
|
|||||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Любитель, Mymik, mr.DUDA. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Разработка под ASP.NET | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |