|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » .NET - Аутентификация ролями |
|
.NET - Аутентификация ролями
|
В Поисках Истины Сообщения: 802 |
Профиль | Отправить PM | Цитировать Сразу прошу прощения, если не сюда пишу!
Здравствуйте! Возникли проблемы с аутентификацией и авторизацией! Читал статьи : Часть 1 и Часть 2 Делал все так, как там описано! В итоге ничего не работает Вот что у меня получается : файл web.config : <authentication mode="Forms"> <forms protection ="All" cookieless="UseCookies" name=".AuthMisis" defaultUrl="~/home.aspx" loginUrl="~/home.aspx"/> </authentication> <?xml version="1.0"?> <configuration> <system.web> <authorization> <allow roles="Admins"/> <deny users="*"/> </authorization> </system.web> </configuration> Есть страничка login.aspx, обработчик кнопки логин : void login_Click(object sender, EventArgs e) { TextBox login = (TextBox)phProfile.FindControl("txtLogin"); TextBox pass = (TextBox)phProfile.FindControl("txtPass"); if ((login.Text.Length == 0) || (pass.Text.Length == 0)) return; if (DB.FindUser(login.Text, pass.Text)) { //Do It, If Founded string Roles = DB.FindRoles(login.Text); FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1,login.Text,DateTime.Now,DateTime.Now.AddMinutes(20),false,Roles); Roles = FormsAuthentication.Encrypt(ticket); Response.Cookies.Add(new HttpCookie(".RolesMisis",Roles)); FormsAuthentication.RedirectFromLoginPage(login.Text, false); } else { //Do It, If not Founded return; } } Оба метода возвращают все верно, было проверено! После всего этого к страницам в директории admins все равно нету доступа Что я упустил?, почему не работает?, подскажите |
|
Отправлено: 15:52, 06-02-2011 |
В Поисках Истины Сообщения: 802
|
Профиль | Отправить PM | Цитировать Разобрался, нашел что упустил. Держите, может кому пригодится :
В обработчике AuthenticateRequest: HttpApplication app = (HttpApplication)sender; if (app.Request.IsAuthenticated) { string[] roles; if (app.Request.Cookies[".RolesMisis"] == null) { Здесь выполнить, например, поиск по базе если куки нет) } else { FormsAuthenticationTicket ticket =FormsAuthentication.Decrypt(app.Context.Request.Cookies[".RolesMisis"].Value); roles = ticket.UserData.Split(new char[] { ';' }); } app.Context.User = new GenericPrincipal(app.Context.User.Identity, roles); } |
------- Отправлено: 16:16, 09-02-2011 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Kerio - Аутентификация пользователей | virtys | Сетевые технологии | 1 | 17-08-2010 20:12 | |
FreeBSD - AD аутентификация | zelo | Общий по FreeBSD | 0 | 10-12-2008 17:45 | |
Не удается аутентификация | SergeiS | Microsoft Windows NT/2000/2003 | 5 | 07-04-2006 11:53 | |
Аутентификация по сети | Sscare | Microsoft Windows NT/2000/2003 | 1 | 13-02-2006 12:26 | |
Аутентификация | ZhenDos | Хочу все знать | 1 | 26-05-2004 00:58 |
|