| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Разработка под ASP.NET > страница регистрации |
| Автор: MFSham 2.4.2007, 23:59 | ||
| Надо создать простую страницу регистрации. Т.е. первоначально пользователь попадает на нее, вводит имя/пароль, и в зависимости от его статуса ему предоставляется определенная информация. Перечитал много всякой инфы, появились вопросы. Пусть у имеются 3 группы пользователей: 1) администраторы 2) преподаватели 3) студенты Соответственно для каждого из них возможности использования ресурса будут не полностью, но различаться. Насколько я понял, это будет либо Forms-аутентификация, либо Аутентификации на основе ролей(вроде как самое то). При какой форме аутентификации этого лучше всего достичь? А может вообще проще все самому ручками написать... Что-то очень похожее(может даже то):
Если это так, то пароли должны хранится в файле web.config. По моему это слегка неудобно. Например, если я захочу для каждого человека хранить какую-либо дополнительную инфу, то мне придется как-то выкручиваться из этой ситуации. (может я вообще все напутал) Тогда появляется смысл в простой БД. Это так или у меня уже все перепуталось? Буду рад любой полезной инфе или примерчику. |
| Автор: Mymik 3.4.2007, 00:14 |
| MFSham, Ну почему сразу в web.config ты можешь хранить в каком-нибудь файле txt к которому запрещен доступ для всех. Но вообще конечно используется СУБД с отдельной таблицей в виде списка пользователей и вторая таблица в виде правил для этих пользователей. (во всяком случая я это делаю именно так). А вот тебе пример -->> http://www.google.ru/search?hl=ru&newwindow=1&rlz=1B3GGGL_ru__206__207&q=asp.net+authentication+by+roles&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr= любую ссылку берешь и читаешь. |
| Автор: wildc 4.4.2007, 15:59 | ||||||
| А зачем такая сложна схема входа в систему?? Посмотри как это сделано на основе personal starter kit. Всё работает на авотмате - никого собственного кода. В веб конфиге прописываешь запрет на доступ для неавторизованных пользователей и определяшь страницу для логина, как то так:
Запрет незалогированным пользователям:
Вот с этого места
чуть подробнее |
| Автор: Mymik 4.4.2007, 17:39 |
| wildc, Для этого и нужны роли. То что ты предлагаешь, это просто запрет доступа на страницу. Т.е. если пользовать (не важно с каким уровнем доступа) залогинился, то ему будут доступны все функции. А топикстартеру нужно чтобы одни пользователи имели доступ к одним ресурсам, а другие к другим. Т.е. как на вот это форуме. Мы, как простые смертные, не имеем доступа к админской части. А у тех у кого есть подходящий уровень доступа -- те имеют доступ туда. wildc, Почитай что такое авторицазия по ролям. |
| Автор: MFSham 4.4.2007, 20:10 |
Если не секрет, что именно ты хранишь в этой таблице? |
| Автор: Mymik 5.4.2007, 10:13 | ||||
А в таблице с юзерами констрейн на эту таблицу с RoleID. При этом пользователь может иметь только одно правило, он не может быть сразу в нескольких К примеру вот так вот. Еще как вариант
Вариант если тебе нужно определять для пользователя несколько ролей и ограничивать их по периоду действия. P.S. все зависит от твоих потребностей... В принципе ты можешь не использовать отдельную таблицу, а сразу засовывать значение в таблицу с юзерами. Ну и так далее. Все определяется твоими возможностями и потребностями. |
| Автор: Mymik 5.4.2007, 16:55 |
| если доступ в целом к странице тогда в web-config прописываю правила в <authorization></authorization> Если к какой-то части странице, тогда проверяю через HttpContext.Current.User.IsInRole() <-- это если в первом framework а если во втором то через Roles.Roles.IsUserInRole(<username>, <rolename>) но тогда тебе нужно еще прописывать прописывать провайдет для этих ролей... вобщем если тебе не хочется сильно и долго заморачиваться, то используй HttpContext.Current.User.IsInRole(<rolename>) |
| Автор: dazy 12.4.2007, 08:09 |
| А еще можно использовать LoginView настраиваешь шаблон для неавторизованных пользователей и для каждой роли отдельно. И в зависимости от роли отображаются те или иные конролы и инфа. Ну это если надо сделать все быстро и просто. |
| Автор: jeka_fox 13.4.2007, 22:49 |
| Может не совсем в тему сказано, но были проблемы при использовании стандартных возможносте - одна из них самая главная - при использовании FormsAut.. допустим вкупе с провайдером SQL, храним в базе - логины, пароли и т.д., всем знакома ситуация, когда пользователю при логине предлогают поставить галочку - "аля запомнить меня", так вот, если на одном компе сия операция выполненна, то при смене пароля у пользователя (с другого компа, ну положим человек из интернет кафе домой пришёл ), на первом компе доступ будет по прежнему возможен, понятно конечно что не фиг где попало галки ставить, но всё же - преодолеть сие стандартными средствами не получается... может сталкивался кто. |