| 
 Здраствуйте!  У меня такая проблема... Есть система аутентификации с помощью форм. В приложении находиятся файлы login.aspx-файл самой формы и default.aspx-страница администрирования Юзеры лежат на sql'e. В web.config пишу вот так: <authentication mode="Forms"> <forms name="SuperPuperLogin" loginUrl="/login/login.aspx" protection="All" timeout="10" path="/"> </forms> </authentication>
  Использую ролевую аутентификацию, в модуле файла global.asax есть такой код: Sub Application_AuthenticateRequest(ByVal sender As Object, ByVal e As EventArgs)       If Context.Request.IsAuthenticated Then          'Здесь работа с SQL-сервером...          'Передаю SQL серваку имя залогинненого юзера User.Identity.Name а в           'ответ получаю роли в которых юзер входит:          myCommand = New System.Data.SqlClient.SqlCommand("DBGetUserRoles", myConnection)          myCommand.CommandType = CommandType.StoredProcedure          myCommand.Parameters.Add("@username", User.Identity.Name)          Dim myDataAdapter As New System.Data.SqlClient.SqlDataAdapter(myCommand)          Dim myDataSet As New System.Data.DataSet()          myDataAdapter.Fill(myDataSet, "CurrentUserRoles")          Dim myRow As System.Data.DataRow          Dim arrRole As New ArrayList()          'Перебор по полученным ролям          For Each myRow In myDataSet.Tables("CurrentUserRoles").Rows             If arrRole.IndexOf(myRow("r_roles")) < 0 Then                arrRole.Add(myRow("r_roles"))                'Здесь еще проверка не входит ли текущая роль в другие роли                'и если входит то тоже добавляется в arrRole             End If          Next          arrRole.Add("everyone")          arrRole.TrimToSize()          'Присваивание юзеру ролей          Context.User = New System.Security.Principal.GenericPrincipal(Context.User.Identity, arrRole.ToArray(GetType(String)))          arrRole.Clear()       End If    End Sub
  Проблема вот в чем. Все это работает если я выставляю права по ролям в пределах этого виртуального каталога. Например вот так:   <authorization>     <allow roles="admin" />     <deny users="*" /> </authorization>
 
 А вот если я пишу в другом вирт.каталоге [b]точно такое же, то меня все равно туда не пускает[/b]. Хотя запись типа:
  <authorization>     <allow users="username" />     <deny users="*" /> </authorization>
  работает прекрасно. Запись в конфиге:
  <authentication mode="Forms"> <forms name="SuperPuperLogin" loginUrl="/login/login.aspx" protection="All" timeout="10" path="/"> </forms> </authentication>
  т.е. имя форм одинаковы. Кто нить с подобным сталкивался? 
Ответить
        |