Любой веб-браузер сначала попытается выполнить анонимный запрос, в случае успеха он не будет пытаться аутентифицироваться. Итак, вы хотите отклонить анонимные запросы:
<authentication mode="Windows" />
<authorization>
<deny users="?" />
<allow users="*" />
</authorization>
Обратите внимание, что порядок элементов в элементе авторизации важен - они похожи на любые правила доступа в том смысле, что они обрабатываются сверху вниз.
В этом случае? это анонимные пользователи и * все пользователи (в том числе анонимные), но, поскольку на первом месте стоит анонимный пользователь запрета - им будет отказано, и он никогда не увидит оператор allow, который позволяет всем остальным.
Кроме того, если это веб-приложение ASP.NET MVC 3, нужно учесть некоторые причуды - пожалуйста, исправьте меня, если я ошибаюсь, поскольку сейчас я не могу вспомнить все детали:
<appSettings>
<add key="autoFormsAuthentication" value="false" />
</appSettings>
autoFormsAuthentication необходимо отключить, чтобы включить проверку подлинности Windows в веб-приложении MVC 3 - или это было в любом случае, возможно, оно уже исправлено, но, поскольку для его выяснения потребовалось довольно много времени, я включил его здесь , Симптом, когда его не отключают, заключается в том, что каждый запрос на аутентификацию перенаправляется на URL-адрес форм учетной записи (который у вас может даже не быть).