Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка под ASP.NET > Идентефикация пользователя


Автор: D_EMO_N 4.12.2007, 13:58
Подскажите как сделать что-бы страницу можно было просматривать только после ввода пароля.
Что-бы в зависимости от того какой у пользователя статус он будет видеть те или иных елементы.
И что-бы пока пользователь не идентифицирован он не мог видеть эту страницу или его автоматически перенаправляло на страницу ввода пароля.

Автор: Servena 4.12.2007, 16:13
Для этого всего существуют сессии. В сессиях можно хранить переменные (имя переменной - значение) - парами, еще называют ключ-значение.

При заходе пользователя на страницу ввода пароля - создаешь для него сессию с какой-нибудь переменной.
Если он вводит правильный имя и пароль (а пароли и имена хранятся в БД, например) - этой переменной присваиваешь какое-то значение, в зависимости от прав данного пользователя. На каждой странице проверяешь эту переменную(показываешь те или иные элементы страницы в зависимости от прав пользователя - это нужно в логике приложения предусмотреть), если в сессии ее нет, или в ней неправильное значение - отправляешь на другую страницу (например, регистрации).

Важно внимательно изучить сессии, так как время их жизни может быть разное, это нужно понимать. Так как бывает, что пользователь зарегистрировался на сайте еще утром, а потом вечером просто зашел на него (так сессия еще храниться на сервере).

Автор: Mymik 4.12.2007, 16:44
Servena, а тебе не кажется что ты изобретаешь велосипед ??? Мне кажется тут прям таки большими буквами написано "используй роли" ??? 

D_EMO_N, почитай про создание и использование http://aspnet.4guysfromrolla.com/articles/121405-1.aspx

Добавлено через 2 минуты и 53 секунды
D_EMO_N, кидаешь кадаешь все элементы на страницу в виде UserControls, делаешь у них открытое свойство в виде Roles туда пишешь в виде строки Наименование ролей для просмотра данного контрола и в контроле в Page_Load проверяешь, если у пользователя есть доступ к этой информации то вперед. А если нет то делаешь
Код

this.Visible = false;
return;

И радуешься жизни smile потому как он ничего тут не увидет

Автор: D_EMO_N 5.12.2007, 15:22
Нашел отличное пособие для начинающих: http://www.microsoft.com/rus/msdn/vstudio/express/vwd/learning/default.mspx (на англ языке)

Там есть ответ и на мой вопрос какраз. много ещё чего

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)