Почему <deny users = "?" /">, приведенные в следующем примере?

Подстановочный знак ? представляет не прошедших проверку пользователей, а * представляет всех пользователей, прошедших проверку подлинности и не прошедших проверку подлинности. В моей книге показан следующий пример авторизации URL:

<authorization>
  <deny users="?" />
  <allow users="dan,matthew" />
  <deny users="*" />
</authorization>


Но не имеет ли вышеуказанный код тот же эффект, что и:

<authorization>
  <allow users="dan,matthew" />
  <deny users="*" />
</authorization>

или автор также включил правило <deny users="?" /> по какой-либо причине?

56
07 мая '09 в 0:58
источник поделиться
4 ответов

ASP.NET предоставляет доступ из файла конфигурации в качестве приоритета. В случае потенциального конфликта первостепенное значение имеет первый встречный грант. Итак,

deny user="?" 

запрещает доступ к анонимному пользователю. Тогда

allow users="dan,matthew" 

предоставляет доступ к этому пользователю. Наконец, он отрицает доступ ко всем. Это встряхивается, как и все, кроме дана, малтею отказывают в доступе.

Отредактировано для добавления: и, как указывает @Deviant, отказ в доступе к unauthenticated бессмысленен, так как последняя запись включает в себя также неаутентифицированную. Хорошую запись в блоге, обсуждающую эту тему, можно найти по адресу: Блог Гуру Саркара

73
07 мая '09 в 1:14
источник

Связанные вопросы


Похожие вопросы

"Во время выполнения модуль авторизации выполняет итерацию через элементы разрешать и отклонять, начиная с самого локального файла конфигурации, до тех пор, пока модуль авторизации не найдет первое правило доступа, которое соответствует определенной учетной записи пользователя. Затем модуль авторизации предоставляет или запрещает доступ к ресурсу URL-адреса в зависимости от того, найдено ли первое правило доступа правило разрешить или запретить. Правило авторизации по умолчанию. Таким образом, по умолчанию доступ разрешен, если не настроен иначе."

Статья на MSDN

deny = * means deny everyone
deny = ? means deny unauthenticated users

В вашем первом примере deny * не повлияет на dan, matthew, так как они уже были разрешены предыдущим правилом.

Согласно документам, здесь нет разницы в ваших 2 наборах правил.

32
07 мая '09 в 1:11
источник

Пример 1 для приложений asp.net с использованием аутентификации форм. Это обычная практика для интернет-приложений, поскольку пользователь не аутентифицирован до тех пор, пока не будет аутентификацией какого-либо модуля безопасности.

Пример 2 для приложения asp.net с использованием аутентификации Windows. Аутентификация Windows использует Active Directory для аутентификации пользователей. Воля предотвратит доступ к вашему приложению. Я использую эту функцию в приложениях интрасети.

3
07 мая '09 в 1:13
источник

См. две ссылки:

deny Элемент авторизации (схема настроек ASP.NET) http://msdn.microsoft.com/en-us/library/vstudio/8aeskccd%28v=vs.100%29.aspx

разрешить элемент для авторизации (схема настроек ASP.NET): http://msdn.microsoft.com/en-us/library/vstudio/acsd09b0%28v=vs.100%29.aspx

1
19 авг. '13 в 23:54
источник

Посмотрите другие вопросы по меткам или Задайте вопрос