powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Ограничение доступа на страницы сайта
14 сообщений из 14, страница 1 из 1
Ограничение доступа на страницы сайта
    #37611358
karie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет всем! Такая вот есть задачка.
Нужно реализовать ограничение доступа на некоторые страницы определенным пользователям. Страницы, к которым нужно обеспечит ограниченный доступ находятся в отдельной папке, в т. Default.aspx, с которой осуществляется переход на другие "закрытые страницы".
В web.config приложения настраиваю
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
 <authorization>
	    <allow users="*"/>
      <deny users="?"/>
    </authorization>
<authentication mode="Forms">
                        <forms name=".ASPXFORMSLOG" loginUrl="Login.aspx" protection="All" path="/" timeout="30"/>
                </authentication>


Во вложенной папке с закрытыми страницами еще один web.config


Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
<system.web>
          <authorization>
           
            <!--<deny users="?"/>-->
             <allow users="demik"/>
            <deny users="*"/>
 
          </authorization>
        </system.web>



На странице Login.aspx по нажатию на кнопку

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
Protected Sub bt_Login_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles bt_Login.Click
        Dim strtmp As String = ValidateUser(ed_Login.Value, ed_Pass.Value)
        If strtmp <> "" Then
            Dim tkt As FormsAuthenticationTicket
            Dim cookiestr As String
            Dim ck As HttpCookie
            Session.Timeout = 30000
            Session.Item("URole") = strtmp.Substring(0, 4).Trim
            Session.Item("UID") = strtmp.Substring(4, 4).Trim
            Session.Item("UName") = strtmp.Substring(8, strtmp.Length - 8).Trim
 
            Try
 
                Dim conn As SqlConnection
                Dim cmd As SqlCommand
                conn = New SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings("saleit_db_supportConnectionString").ConnectionString)
                conn.Open()
                cmd = New SqlCommand("INSERT INTO tbl_WebLogs(UserID,theDate,WebPage) VALUES(@UserID,GetDate(),@WebPage)", conn)
                cmd.Parameters.Add("@WebPage", Data.SqlDbType.VarChar, 50)
                cmd.Parameters("@WebPage").Value = "Login.aspx"
                cmd.Parameters.Add("@UserID", Data.SqlDbType.VarChar, 15)
                cmd.Parameters("@UserID").Value = Session.Item("UID")
                cmd.ExecuteScalar()
                cmd.Dispose()
                conn.Dispose()
            Catch ex As Exception
            End Try
 
            tkt = New FormsAuthenticationTicket(1, Session.Item("UName"), DateTime.Now(), DateTime.Now.AddMinutes(30000), False, Session.Item("URole"))
            cookiestr = FormsAuthentication.Encrypt(tkt)
            ck = New HttpCookie(FormsAuthentication.FormsCookieName(), cookiestr)
            ck.Path = FormsAuthentication.FormsCookiePath()
            Response.Cookies.Add(ck)
 
 
 
            If Session.Item("URole") = 3 Then
                Response.Redirect("SummaryForDanone.aspx", True)
 
            Else
                'Dim strRedirect As String = Request("ReturnUrl")
                'If (strRedirect Is Nothing) Then
                '    Response.Redirect("Default.aspx", True)
                '    'Response.Redirect("Profile.aspx?clid=0", True)
                'Else
                '    Response.Redirect("Default.aspx", True)
                '    'Response.Redirect("Profile.aspx?clid=0", True)
                '    'Response.Redirect(strRedirect, True)
                'End If
                Response.Redirect("Default.aspx", True)
            End If
 
        Else
            Response.Redirect("login.aspx", True)
        End If
 
 
    End Sub


Нужно чтобы пользователь demik(у него Session.Item("URole") <> 3) со страницы логин перенаправлялся на Default.aspx, а пользователи у которых Session.Item("URole") = 3 перенаправлялись на страницу SummaryForDanone.aspx, при этом, если они через адресную строку попытаются перейти на страницу Default.aspx или другие закрытые страницы, доступ будет запрещен.

А получается, что польователи, у которых Session.Item("URole") = 3 переходят на нужную страницу, а на запрещенные перейти не могут..А вот при входе "demik" вываливает ошибка

Не удалось найти данный ресурс.
Описание: HTTP 404. Возможно, искомый ресурс (или один из зависимых от него компонентов) удален, получил другое имя или временно недоступен. Просмотрите следующий URL-адрес и проверьте, что он введен правильно.

Запрошенный URL: /SupporttrueVersion7.0 - копия (2)/Default.aspx


Ребята, плиз, подскажите, что я делаю неправильно, в чем ошибка, может как то по-другому вообще это нужно делать?
...
Рейтинг: 0 / 0
Ограничение доступа на страницы сайта
    #37611427
karie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
причем не работает именно allow и deny в web.config, т.к. если не ложить закрытые страницы в отдельную папку, а установить ограничение в web.config, то оно не работает и пользователи с ограниченным доступом могут спокойно перейти на "закрытые страницы".
...
Рейтинг: 0 / 0
Ограничение доступа на страницы сайта
    #37611515
karie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
можно конечно, просто на каждой странице при загрузке делать проверку, и в зависимости от этого пропускать юзера или нет....но правильно ли это?
...
Рейтинг: 0 / 0
Ограничение доступа на страницы сайта
    #37611556
Andrey1306
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
<configuration>
<system.web>
<authorization>
<allow roles="Администратор"/>
<deny users="*"/>
</authorization>
</system.web>
</configuration>


это веб конфиг для папки которой имеют доступ только пользователи роли "Администратор"
...
Рейтинг: 0 / 0
Ограничение доступа на страницы сайта
    #37611598
Andrey1306
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно собрать пользователей в группы и разрешать доступ к страницам только этим группам , остальных не пущать. А то поюзерно как то совсем тоскливо будет.
...
Рейтинг: 0 / 0
Ограничение доступа на страницы сайта
    #37611638
karie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А как их собрать в группы? на данном этапе добавление пользователей идет напрямую в базе данных.
...
Рейтинг: 0 / 0
Ограничение доступа на страницы сайта
    #37611643
Andrey1306
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну в базе данных и собирайте. А вообще посмотрите в сторону Membership + RoleProvider
...
Рейтинг: 0 / 0
Ограничение доступа на страницы сайта
    #37611665
karie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо)
...
Рейтинг: 0 / 0
Ограничение доступа на страницы сайта
    #37611694
karie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
только вот даже если будет разделение по ролямЮ, будут ли работать ограничения в web.config? вопрос, похоже, все равно, открыт...почему юзеров не пропускает...?
...
Рейтинг: 0 / 0
Ограничение доступа на страницы сайта
    #37611724
Andrey1306
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
karieтолько вот даже если будет разделение по ролямЮ, будут ли работать ограничения в web.config? вопрос, похоже, все равно, открыт...почему юзеров не пропускает...?

Ограничение будет работать.

ВЫ в 1 первом посте написали
karieА получается, что польователи, у которых Session.Item("URole") = 3 переходят на нужную страницу, а на запрещенные перейти не могут..А вот при входе "demik" вываливает ошибка

Значит Response.Redirect("Default.aspx", True) не правильный.
...
Рейтинг: 0 / 0
Ограничение доступа на страницы сайта
    #37611782
karie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я извиняюсь, может я неправильно написала, в случае если заходит юзер с ограниченными праваими на закрытые страницы, то тоже пишет, что ресурс не найден...это значит, что не получается настроить именно ограничение и разрешение к папке в web.config...что тут может быть неправильно?


сейчас временно на закрытых страницах проверка данных из сессии в Page_Load, в зависимости от чего и осуществляется перенаправление юзера с закрытой страницы...работает...но это ведь, наверно, не очень корректно...
...
Рейтинг: 0 / 0
Ограничение доступа на страницы сайта
    #37611835
Andrey1306
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проверьте на своих страницах , после авторизации пользователя HttpContext.Current.User.Identity.IsAuthenticated что показывает ?
...
Рейтинг: 0 / 0
Ограничение доступа на страницы сайта
    #37612935
karie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в дебаге показывает true
...
Рейтинг: 0 / 0
Ограничение доступа на страницы сайта
    #37613076
Andrey1306
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
karieя извиняюсь, может я неправильно написала, в случае если заходит юзер с ограниченными праваими на закрытые страницы, то тоже пишет, что ресурс не найден...это значит, что не получается настроить именно ограничение и разрешение к папке в web.config...что тут может быть неправильно? .

А мне кажется что просто путь не правильно указан, иначе было бы перенаправление на страницу loginUrl="Login.aspx"

А вообще (я кончно могу ошибаться , будут гуру может чего подскажут) мое мнение у вас MemberShip не настроен где в вебконфиге секция такая ?

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
	<membership defaultProvider="MyProvider">
			<providers>
				<clear/>
				<add name="MyProvider" 
					 type="Admin.MyProviderMemberShipProvider"  
					 connectionStringName="ApplicationServices" 
					 enablePasswordRetrieval="false" 
					 enablePasswordReset="true" 
					 requiresQuestionAndAnswer="false" 
					 requiresUniqueEmail="false" 
					 maxInvalidPasswordAttempts="5" 
					 minRequiredPasswordLength="6" 
					 minRequiredNonalphanumericCharacters="0" 
					 passwordAttemptWindow="10" applicationName="/"/>
				
			</providers>
		</membership>




Судя по этому
Код: c#
1.
 Dim strtmp As String = ValidateUser(ed_Login.Value, ed_Pass.Value)

Вам надо свой писать
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Ограничение доступа на страницы сайта
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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