Ответ 1
Я ненавижу отвечать на свой вопрос, но, поскольку я все-таки понял это, полагаю, я бы поделился знаниями.
Используйте тег location и поместите теги allow и deny в правильном порядке.
Тег местоположения можно использовать для настройки определенного ресурса URL. В моем случае я хотел настроить несколько URL-адресов и папок.
Сначала это не сработало, потому что у меня не было разрешения/запрета в правильном порядке. Согласно MSDN, "модуль авторизации предоставляет или запрещает доступ к ресурсу URL в зависимости от того, найдено ли первое правило доступа правило разрешить или запретить".
В моем случае мне нужно было сначала поместить все мои публичные вещи (default.aspx, home, styles, images, scripts), а затем я отказался от всего остального. Я оставил путь в последнем теге местоположения. Это делает его применимым ко всем файлам и подпапкам.
Конечный результат: пользователь может попасть на домашнюю страницу, поднять изображения и стили, но для всего остального необходимо войти в систему.
Вот мой веб-конфигурационный файл:
<!--AUTHORIZATION AND AUTHENTICATION RULES-->
<location path="default.aspx">
<system.web>
<authorization>
<allow users="?"/>
</authorization>
</system.web>
</location>
<location path="Home">
<system.web>
<authorization>
<allow users="?"/>
</authorization>
</system.web>
</location>
<location path="Styles">
<system.web>
<authorization>
<allow users="?"/>
</authorization>
</system.web>
</location>
<location path="Scripts">
<system.web>
<authorization>
<allow users="?"/>
</authorization>
</system.web>
</location>
<location path="images">
<system.web>
<authorization>
<allow users="?"/>
</authorization>
</system.web>
</location>
<location allowOverride="true">
<system.web>
<authentication mode="Forms">
<forms loginUrl="~/Account/LogOn" timeout="2880" slidingExpiration="true" />
</authentication>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</location>
<!--END AUTHORIZATION AND AUTHENTICATION RULES-->