Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Разграничить доступ к страничке декларативно 
:(
    Опции темы
vzf
Дата 17.12.2007, 03:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 203
Регистрация: 10.9.2005

Репутация: нет
Всего: 5



Здравствуйте.

Написал простейшее приложение, в котором при запросе страницы Default.aspx происходит Form-based аутентификация. Помимо  Default.aspx есть страница Test.aspx, доступ к которой имеет только определенный пользователь. На страницу Test.aspx попадают с Default.aspx. Пользователь проходит аутентификацию, попадает на  Default.aspx и жмет ссылку на Test.aspx.
Если пользователь тот, которому разрешен доступ к Test.aspx, то все хорошо, но если нет, происходит редирект на страницу входа login.aspx. Вопрос заключается в том, можно ли сделать так чтобы если к Test.aspx обращается пользователь доступ которому не разрешен, то его не отправляли бы на страницу входа (он же уже аутентифицировался), а выдавали бы страницу с 403 ошибкой например или был бы редирект на специальную страницу ошибки. Хотелось бы, чтобы это делалось декларативно, т.е. указывалось в настройках.

А так в принципе это можно реализовать программно, например на странице Test.aspx добавить что-нибудь типа следующего кода: 

Код

<script language="C#" runat="server">

        void Page_Load(Object Sender, EventArgs E)
        {
            if (!HttpContext.Current.User.Identity.Name.Equals("Fenty"))
            {
                Response.Redirect("ErrorAccess.aspx");
            }
        }
  </script>
  

Буду признателен, если кто подскажет можно ли этого добиться.

файл web.config у меня имеет следующее содержание:
Код


<?xml version="1.0"?>
<!-- 
    Note: As an alternative to hand editing this file you can use the 
    web admin tool to configure settings for your application. Use
    the Website->Asp.Net Configuration option in Visual Studio.
    A full list of settings and comments can be found in 
    machine.config.comments usually located in 
    \Windows\Microsoft.Net\Framework\v2.x\Config 
-->
<configuration>
    <appSettings/>
    <connectionStrings/>
    <system.web>

        <compilation debug="true"/>

    <authentication mode="Forms">
      <forms name=".ASPXUSERDEMO" loginUrl="login.aspx" protection="All" timeout="60">
        <credentials passwordFormat="Clear">
          <user name="Cynthia" password="cyn"/>
          <user name="Flora" password="flo"/>
          <user name="Fenty" password="fang"/>
        </credentials>
      </forms>
    </authentication>
    <authorization>
      <allow users="Flora" />
      <allow users="Fenty" />
      <deny users="*" />
    </authorization>
    <globalization requestEncoding="UTF-8" responseEncoding="UTF-8" />
    
  </system.web>
  <location path="Test.aspx">
    <system.web>
      <authorization>
        <allow users="Flora" />
        <deny users="*"/>
      </authorization>
    </system.web>
  </location>

</configuration>


--------------------
Java - Write Once, Test EveryWhere!
PM MAIL   Вверх
tol05
Дата 17.12.2007, 19:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1632
Регистрация: 21.12.2006
Где: Харьков

Репутация: 34
Всего: 170



ИМХО самый надежный способ - это Test.aspx поместить в отдельную папку, в папку положить отдельный web.config, а в нем прописать:
Код

<system.web>
    <authorization>
        <allow roles="admin"/>
        <deny users="*"/>
    </authorization>
</system.web>



--------------------
На хорошей работе и сны хорошие снятся.
PM MAIL   Вверх
vzf
Дата 17.12.2007, 23:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 203
Регистрация: 10.9.2005

Репутация: нет
Всего: 5



Попробовал такой способ. Результат тот же. Если пользователь не имеет право доступа, его перенаправляют на login.aspx, а мне бы хотелось чтоб показывали страницу ошибки.
--------------------
Java - Write Once, Test EveryWhere!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Любитель
Mymik
mr.DUDA

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Любитель, Mymik, mr.DUDA.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка под ASP.NET | Следующая тема »


 




[ Время генерации скрипта: 0.0659 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.