powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Ворос про про авторизацию
28 сообщений из 28, показаны все 2 страниц
Ворос про про авторизацию
    #33870685
Чешков Антон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Настраиваю доступ к страницам сайта через Авторизацию доступа к URL

в файле web.config написал следущее
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
<location path="admin.aspx">
  <system.web>
   <authorization>
     <allow roles ="Директора"/> 
     <allow users ="admin"/>
     <deny users ="*"/> 
   </authorization>
  </system.web> 
 </location>
 
 <location path="user.aspx">
  <system.web>
   <authorization>
     <allow roles ="Директора,Менеджеры"/> 
     <deny users ="*"/> 
   </authorization>
  </system.web> 
 </location>
,
при прохождении аутентификации запрашиваю логин, пароль и формирую билет аутентификации

Код: plaintext
1.
2.
3.
4.
ticket = new FormsAuthenticationTicket( 1 ,txtName.Text, DateTime.Now,DateTime.Now.AddMinutes( 20 ),false,strRoles);
encTicket = FormsAuthentication.Encrypt(ticket);
Response.Cookies.Add(new HttpCookie("UrlAuthz",encTicket));
FormsAuthentication.RedirectFromLoginPage(txtName.Text,false);
где strRoles = {Директора, Менеджеры};
но при попытке зайти , на одну из форм admin.aspx,user.aspx, не пускает?
что делать или что я еще не сделал???
...
Рейтинг: 0 / 0
Ворос про про авторизацию
    #33870932
Чешков Антон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще такая штука , по

<allow users ="admin"/> пускает, а если только определить роли, то не пускает
...
Рейтинг: 0 / 0
Ворос про про авторизацию
    #33870985
Crank
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй deny поставить перед allow.
...
Рейтинг: 0 / 0
Ворос про про авторизацию
    #33871024
Чешков Антон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если я ставлю

<allow roles ="Директора,Менеджеры"/>
<deny users ="*"/>

меня не пускает ни на одну страницу, хоть пользователь Директор хоть Менеджер,

если пишу, одну строку

<allow roles ="Директора,Менеджеры"/>

то пускает всех??
...
Рейтинг: 0 / 0
Ворос про про авторизацию
    #33871048
v_tarasoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что прописано в <authorization> на уровне приложения? ~~~~~~~~~~~~~~~~~
Please, rate my answers
...
Рейтинг: 0 / 0
Ворос про про авторизацию
    #33871250
Crank
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я че, невнятно написал :)??? Попробуй поменять порядок allow и deny. Сначала всем запрещаешь, а потом разрешаешь с ролями Директора, Менеджеры. Порядок имеет значение ;)
...
Рейтинг: 0 / 0
Ворос про про авторизацию
    #33871306
Dimon aka Manowar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробуй deny поставить перед allow.
РТФМ, тьфу, МСДН.
Сам хоть пробовал такое?


Многие вещи нам непонятны не оттого, что наши понятия слабы, а оттого, что данные вещи не входят в круг наших понятий.
...
Рейтинг: 0 / 0
Ворос про про авторизацию
    #33871309
Dimon aka Manowar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Роли юзера нужно восстанавливать при каждом постбеке.
Глянь Создание системы авторизации, основанной на ролях, в ASP.NET приложении


Многие вещи нам непонятны не оттого, что наши понятия слабы, а оттого, что данные вещи не входят в круг наших понятий.
...
Рейтинг: 0 / 0
Ворос про про авторизацию
    #33871339
Crank
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дык, я ж даже не задавался вопросом восстанавливает он их или нет :). А про порядок могу смело утверждать, что в ASP.NET 1.1 он имеет значение. Проверял.
...
Рейтинг: 0 / 0
Ворос про про авторизацию
    #33871763
Dimon aka Manowar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеет. Первое же совпадение прерывает дальнейшую проверку.
напиши вначале deny users="*" и уже без разницы что там за allow дальше, никто доступа не получит.

Многие вещи нам непонятны не оттого, что наши понятия слабы, а оттого, что данные вещи не входят в круг наших понятий.
...
Рейтинг: 0 / 0
Ворос про про авторизацию
    #33872941
Чешков Антон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
v_tarasoffЧто прописано в <authorization> на уровне приложения? ~~~~~~~~~~~~~~~~~
Please, rate my answers

написано

Код: plaintext
1.
2.
3.
<authorization>
 <allow users="*" /> <!-- Allow all users -->
</authorization>
...
Рейтинг: 0 / 0
Ворос про про авторизацию
    #33873116
v_tarasoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
С <authorization> проблем не вижу. Продолжим-с... Не могли бы вы опубликовать раздел <authentication> ?~~~~~~~~~~~~~~~~~
Please, rate my answers
...
Рейтинг: 0 / 0
Ворос про про авторизацию
    #33873187
Чешков Антон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
v_tarasoffС <authorization> проблем не вижу. Продолжим-с... Не могли бы вы опубликовать раздел <authentication> ?~~~~~~~~~~~~~~~~~
Please, rate my answers

Код: plaintext
1.
2.
3.
<authentication mode="Forms">
	<forms name="UrlAuth" loginUrl="login.aspx" />
</authentication>
...
Рейтинг: 0 / 0
Ворос про про авторизацию
    #33873291
v_tarasoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Простите великодушно, а вот здесь "Response.Cookies.Add(new HttpCookie("UrlAuthz",encTicket));", в имени cookie вы не ошиблись?~~~~~~~~~~~~~~~~~
Please, rate my answers
...
Рейтинг: 0 / 0
Ворос про про авторизацию
    #33873483
Чешков Антон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я это уже видел )) и сделал имена одиннаковыми .
...
Рейтинг: 0 / 0
Ворос про про авторизацию
    #33873579
Чешков Антон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
v_tarasoffПростите великодушно, а вот здесь "Response.Cookies.Add(new HttpCookie("UrlAuthz",encTicket));", в имени cookie вы не ошиблись?~~~~~~~~~~~~~~~~~
Please, rate my answers


исправил , но не помогает
написал на загрузку страницы вот такую штуку
Код: plaintext
1.
2.
3.
4.
5.
if (Request.Cookies["UrlAuth"] != null )
{
 FormsAuthenticationTicket t =  FormsAuthentication.Decrypt(Request.Cookies ["UrlAuth"].ToString);	
 Response.Write("UserData = "+t.UserData);
}

он выводит пусто ((
UserData =
...
Рейтинг: 0 / 0
Ворос про про авторизацию
    #33873835
Чешков Антон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Получаеться ,я когда я расшифровываю информацию из Cookie . то строка м ролями пуста!! ?? (
...
Рейтинг: 0 / 0
Ворос про про авторизацию
    #33873928
v_tarasoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не вижу проблем в вашем коде. Впрочем, можем продолжить отладку:

Добавьте такое свойство: <forms name="UrlAuth" loginUrl="login.aspx" protection="None" />.

После чего посмотртите, что а создается ли вообще cookie и что в него вы записали.
~~~~~~~~~~~~~~~~~
Please, rate my answers
...
Рейтинг: 0 / 0
Ворос про про авторизацию
    #33873983
Чешков Антон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
v_tarasoffНе вижу проблем в вашем коде. Впрочем, можем продолжить отладку:

Добавьте такое свойство: <forms name="UrlAuth" loginUrl="login.aspx" protection="None" />.

После чего посмотртите, что а создается ли вообще cookie и что в него вы записали.
~~~~~~~~~~~~~~~~~
Please, rate my answers

Cookie создаеться ! Но по прежнему нет информации в сво-ве t.UserData
...
Рейтинг: 0 / 0
Ворос про про авторизацию
    #33874010
v_tarasoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я предлагал вам найти сам файл cookie и посмотреть, что у него внутри. protection="None" как раз снимает шифрование содержимого cookie.~~~~~~~~~~~~~~~~~
Please, rate my answers
...
Рейтинг: 0 / 0
Ворос про про авторизацию
    #33874035
Dimon aka Manowar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробуем повторить еще раз - вдруг услышат
Identity с ролями нужно пересоздавать при каждом запросе страницы, курим Создание системы авторизации, основанной на ролях, в ASP.NET приложении

Многие вещи нам непонятны не оттого, что наши понятия слабы, а оттого, что данные вещи не входят в круг наших понятий.
...
Рейтинг: 0 / 0
Ворос про про авторизацию
    #33874058
Чешков Антон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не знаю как его найти.
Еще одна штучка : Если при заполнение Cookie взять и расшифровать билет сразу , , то из него нормально извлекаеться информация

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
ticket = new FormsAuthenticationTicket( 1 ,txtName.Text, DateTime.Now,DateTime.Now.AddMinutes( 20 ),false,strRoles);
encTicket = FormsAuthentication.Encrypt(ticket);
Response.Cookies.Add(new HttpCookie("UrlAuthz",encTicket));
FormsAuthentication.RedirectFromLoginPage(txtName.Text,false);

t =  FormsAuthentication.Decrypt(encTicket);			
Response.Write("<br> UserData2= "+t.UserData);

пишет
UserData2 =Directors
...
Рейтинг: 0 / 0
Ворос про про авторизацию
    #33874076
Чешков Антон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimon aka ManowarПопробуем повторить еще раз - вдруг услышат
Identity с ролями нужно пересоздавать при каждом запросе страницы, курим Создание системы авторизации, основанной на ролях, в ASP.NET приложении

Многие вещи нам непонятны не оттого, что наши понятия слабы, а оттого, что данные вещи не входят в круг наших понятий.

да я прочитал статью, но все же интересно почему в Cookie не созраняеться информация??
...
Рейтинг: 0 / 0
Ворос про про авторизацию
    #33875226
Dimon aka Manowar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Эх...
Да сохраняется все в куках, оно в идентити должно быть для работы ролевой авторизации. А для этого роли из кук нужно к идентити приделать - чем и занимается код обработчика Application_AuthenticateRequest. Глянь последнюю строчку - Context.User = new GenericPrincipal(Context.User.Identity, roles); - это именно то, что тебе нужно

Многие вещи нам непонятны не оттого, что наши понятия слабы, а оттого, что данные вещи не входят в круг наших понятий.
...
Рейтинг: 0 / 0
Ворос про про авторизацию
    #33875457
Чешков Антон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда следующий вопрос :

событие классa HTTPRequest.AuthenticateRequest где его прописывать? в наследнике класса Page ??
...
Рейтинг: 0 / 0
Ворос про про авторизацию
    #33876132
Dimon aka Manowar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вообще-то это событие Application.AuthenticateRequest и прописывается оно в global.asax

Многие вещи нам непонятны не оттого, что наши понятия слабы, а оттого, что данные вещи не входят в круг наших понятий.
...
Рейтинг: 0 / 0
Ворос про про авторизацию
    #33876383
Чешков Антон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimon aka ManowarВообще-то это событие Application.AuthenticateRequest и прописывается оно в global.asax

Многие вещи нам непонятны не оттого, что наши понятия слабы, а оттого, что данные вещи не входят в круг наших понятий.

вот этот код
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
protected void Application_AuthenticateRequest(Object sender, EventArgs e)
{
   if (Request.IsAuthenticated) 
   {
      Response.Write("hidook<br>");
      if ((Request.Cookies["UrlAuth"] == null) || (Request.Cookies["UrlAuth"].Value   = ""))
      {
					
      }
      else
      {
         FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt       (Context.Request.Cookies["UrlAuth"].Value);
        Response.Write("global.asa<br>");
        Response.Write("UserData="+ticket.UserData);
}
 }
}


выводит после аутентификации

global.asa
UserData=
т.е опять пусто((
...
Рейтинг: 0 / 0
Ворос про про авторизацию
    #33876667
Чешков Антон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделал так что бы Cookie заполнялись в событии AuthenticateRequest . теперб
строка UserData не пуста, объясните почему?
...
Рейтинг: 0 / 0
28 сообщений из 28, показаны все 2 страниц
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Ворос про про авторизацию
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]