ASP.NET Security: запретить анонимный доступ к странице входа - PullRequest
0 голосов
/ 22 марта 2012

Я хочу запретить анонимный доступ ко всей странице входа в систему и разрешить только пользователям, имеющим определенную роль, просматривать эту страницу или что-либо в этом каталоге. Это возможно? Я пытался реализовать это в файле web.config, но безуспешно: (

спасибо

Ответы [ 3 ]

0 голосов
/ 22 марта 2012

Да, вы можете ... при условии, что все ваши клиенты работают на рабочих станциях Windows, которые находятся в том же домене AD, что и ваши веб-серверы IIS, и используют Internet Explorer (то есть только для внутренней сети, а не через Интернет). Вы хотите настроить IIS так, чтобы он принимал только встроенную проверку подлинности Windows, что заставит клиентские рабочие станции использовать Kerberos для предоставления информации проверки подлинности в IIS. Вот инструкция от Microsoft о том, как это настроить.

0 голосов
/ 13 апреля 2018

В web.config :

<configuration>
   <system.web>
      <location path="MyLoginPage.aspx"> 
         <system.web>
            <authorization>
               <deny users="?"/>
            </authorization>
         </system.web>
      </location>
   </system.web>
</configuration>

Специальное ключевое слово ? означает анонимных пользователей ;который задокументирован в схеме элементов :

Атрибут : users

Список имен пользователей, которым запрещен доступ, через запятуюк ресурсу.
Знак вопроса (?) запрещает анонимным пользователям, а звездочка (*) указывает на то, что всем учетным записям пользователей запрещен доступ.

По сути, это многословный способ Microsoftпоговорка:

  • Местоположение: MyLoginPage.aspx
  • Запрет: анонимный

Это означает, что кто-тодолжен быть аутентифицирован с использованием механизма, отличного от Форма ;например, Интегрированная (она же Kerberos, Windows) аутентификация или Basic аутентификация.Вы не сможете использовать Аутентификация по формам , потому что они не смогут зайти на страницу входа для входа в систему.

0 голосов
/ 22 марта 2012

Это будет возможно только в приложении интрасети, где ваши пользователи будут проходить аутентификацию в Active Directory. См MSDN

В противном случае, как пользователи будут входить в систему, если у них нет доступа к странице входа?

Я бы предпочел реализовать контроль доступа на страницах с фактическим содержимым или выполнить дополнительную проверку, когда пользователи пытаются войти в систему, и дать им понять, что им необходимо выполнять определенную роль для успешного входа в систему.

...