Настройки аутентификации в IIS 7.5 и ASP.Net, в чем разница?

Я только начинаю изучать веб-программирование с использованием IIS 7.5 в Windows 2008 R2 и ASP.Net 4.

Я заметил, что и IIS, и ASP.Net могут определять правила аутентификации. В IIS есть параметр проверки подлинности с помощью формы, в котором я могу перенаправить пользователя на указанную страницу для проверки подлинности, как показано ниже:

alt text

А затем в файле ASP web.config я нахожу похожие настройки:

<authentication mode="Forms">
  <forms loginUrl="~/Account/Login.aspx" timeout="2880" />
</authentication>

Когда я завершу обе настройки, я предполагаю, что любой запрос страницы будет перенаправлен на страницу login.aspx. Но этого не произошло. Итак, я сбит с толку. Как 2 набора конфигов работают вместе? А почему не перенаправляется запрос страницы?

Спасибо

Обновить

Наконец-то у меня все заработало, и теперь я думаю, что понимаю это. Структура моего сайта выглядит так:

alt text

Речь идет об изменении правил авторизации. Запретить всем неавторизованным пользователям root:

    <authorization>
        <deny users="?" />
    </authorization>

Файлы CSS должны быть разрешены для всех пользователей, поэтому у меня есть Styles \ web.config:

    <authorization>
        <allow users="*" />
    </authorization>

и разрешить доступ к register.aspx только неавторизованным пользователям, поэтому у меня есть Account \ web.config:

  <location path="Register.aspx">
    <system.web>
      <authorization>
        <allow users="*"/>
      </authorization>
    </system.web>
  </location>

  <system.web>
    <authorization>
      <deny users="?"/>
    </authorization>
  </system.web>

person Sheen    schedule 08.10.2010    source источник


Ответы (2)


Вам нужно настроить еще один компонент: авторизацию. Если вы этого не сделаете, неавторизованные пользователи будут иметь доступ ко всем страницам и не будут перенаправлены на страницу входа. Например:

<authorization>
    <deny users="?" />
</authorization>

Это указывает, что всем неаутентифицированным пользователям запрещен доступ к страницам в вашем приложении. Элемент authorization является частью раздела конфигурации system.web.

person Ronald Wildenberg    schedule 08.10.2010
comment
Привет, я добавил это, но это дает мне ту же ошибку, а не перенаправление. Кажется, перенаправление не автоматическое? - person Sheen; 08.10.2010
comment
Рад, что ты с этим справился. Если это помогло вам ответить на ваш вопрос, не могли бы вы отметить его как полученный? - person Ronald Wildenberg; 08.10.2010

Когда вы устанавливаете что-то в IIS с аутентификацией (в вашем случае аутентификация формы). Он также изменяет файл webconfig вашего сопоставленного проекта с теми же настройками. Вот почему вы видите одинаковую информацию в обоих модулях.

person Liuksas    schedule 08.10.2010
comment
ты прав. И когда я включаю все 3 метода в IIS, web.config использует только «Формы». Означает ли это, что приоритет имеет метод формы? - person Sheen; 08.10.2010
comment
Попробуйте ‹system.web› ‹authorization› ‹deny users =? /› ‹/Authorization› ‹/system.web› ‹путь к местоположению = login.aspx› ‹system.web› ‹authorization› ‹allow users = * /› ‹ / authorization ›‹ /system.web ›‹/location› Разрешить пользователю подключаться к указанной странице в webconfig. - person Liuksas; 08.10.2010
comment
‹Режим аутентификации = Формы› ‹формы loginUrl = ~ / Account / Login.aspx timeout = 2880 /› ‹/authentication› В этом разделе устанавливаются политики аутентификации приложения. Возможные режимы: Windows, Forms, Passport и None. Поскольку у вас есть один из них, webconfig содержит только один. - person Liuksas; 08.10.2010