Предположим, некоторые пользователи входят в мое веб-приложение. Они проходят проверку подлинности (как нечто отличное от анонимного пользователя), поэтому они могут получить доступ к любому ресурсу в каталоге. Раздел system.web / authorization файла web.config настроен на запрет доступа анонимным пользователям, например:
<system.web><authorization>
<deny users="?" />
</authorization></system.web>
На самом деле, насколько я понимаю, это защищает только файлы, доступ к которым осуществляется через систему ASP.NET. Если я добавлю туда файл JPG, он будет доступен каждому без аутентификации / авторизации. Чтобы обеспечить защиту всех файлов, для этого есть другой раздел:
<system.webServer><security><authorization>
<add accessType="Deny" users="?" />
</authorization></security><system.webServer>
Конечно, теперь, когда кто-то пытается получить доступ к файлу JPG, он не перенаправляется на страницу входа. Вместо этого они получают неприятную ошибку HTTP 401.2 - неавторизовано.
Теперь предположим, что пользователь вызывает создание файла на сервере. Как в контексте этой сложной схемы проверки подлинности и авторизации с помощью форм я могу гарантировать, что только веб-браузер этого пользователя может получить доступ к файлу через его URL-адрес? Например, я должен изменить файл web.config? Если да, то нужно ли делать это вручную или это можно сделать с помощью кода? Будет ли его изменение часто вызывать прерывание / перезапуск приложения?