Настройки аутентификации в IIS 7.5 и ASP.Net, в чем разница? - PullRequest
4 голосов
/ 08 октября 2010

Я только начинаю изучать веб-программирование с использованием 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>

Ответы [ 2 ]

3 голосов
/ 08 октября 2010

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

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

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

1 голос
/ 08 октября 2010

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

...