Проверка подлинности asp.net froms всегда перенаправляет - PullRequest
0 голосов
/ 08 сентября 2011

На моем веб-сайте должны быть некоторые части, которые можно увидеть только после аутентификации пользователя, а некоторые части видны всем.

Аутентификация по формам всегда перенаправляет пользователя на страницу входа, независимо от того, какая страница посещена. Означает ли это, что я не должен использовать проверку подлинности с помощью форм? Как я могу решить эту проблему?

Ответы [ 2 ]

1 голос
/ 08 сентября 2011

Используйте элемент в web.config, чтобы указать, какие страницы защищены. Вам необходимо удалить авторизацию со всего веб-сайта, установить ее для каждой защищенной страницы в элементе .
Общий подход заключается в том, чтобы поместить все защищенные страницы в отдельную папку и указать путь к этой папке.
Другой - иметь класс, который наследует System.Web.Page, и при событии Init перенаправлять пользователя на какую-либо страницу, если она не аутентифицирована Каждая страница должна наследовать эту страницу.

<system.web>
    <authorization>
      <deny users="?"/>
      <allow users="*"/>
    </authorization>
  </system.web>
  <location path="public">
    <system.web>
      <authorization>
        <allow users="*"/>
      </authorization>
    </system.web>
  </location>
  <location path="login.aspx">
    <system.web>
      <authorization>
        <allow users="*"/>
      </authorization>
    </system.web>
  </location>
0 голосов
/ 11 июня 2013

Для меня проблема была MachineKey. Требуется расшифровать / зашифровать cookie , если вы это делаете (например, веб-ферма). Поскольку приложение не могло расшифровать cookie, даже если оно передавалось взад и вперед, приложение действовало так, как будто cookie даже не было. Добавление этого параметра в web.config исправило это для меня:

<machineKey compatibilityMode="Framework20SP2" validationKey="some_hard_coded_long_key" decryptionKey="another_hard_coded_long_key" validation="SHA1" />

См. Эту статью для более подробной информации о machinekey .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...