Дома у меня есть небольшой сервер под управлением Windows Server 2012 и IIS8 (без AD). Я хочу, чтобы некоторые пользователи на моем сервере имели доступ к общему каталогу файлов, чтобы они могли загружать его через https.
Я создал веб-сайт в диспетчере IIS, установил базовый каталог в общую папку, включил просмотр каталогов для этого веб-сайта, отключил анонимную аутентификацию и включил аутентификацию Windows. Доступ из интернета и https с подписанным сертификатом также настроен и работает.
Все идет нормально. Когда я захожу на свой сервер, меня спрашивают мои учетные данные (хорошо). К сожалению, все пользователей локального сервера разрешен доступ к папке, даже встроенной гостевой учетной записи (плохо). Теперь я хочу ограничить доступ для некоторых пользователей, которых я включил в группу под названием WebFiles Users
. Итак, я попробовал кое-что, что знаю из веб-программирования - я добавил authorization
тег к web.config
который теперь выглядит так:
<configuration>
<system.web>
<authorization>
<allow roles="MyServer\WebFiles Users" />
<deny users="*" />
</authorization>
</system.web>
<!-- this was created by the IIS manager: -->
<system.webServer>
<directoryBrowse enabled="true" />
</system.webServer>
</configuration>
Но не работает. Я все еще могу получить доступ к веб-сайту с гостевым пользователем. Кто-нибудь может сказать мне, что я сделал не так?
system.web - это то, что применяется к управляемому контенту asp.net, а не к статическим файлам.
Вместо этого вы хотите использовать system.webserver. Узел:
<configuration>
<system.webServer>
<security>
<authorization>
должен покрыть это.
В диспетчере IIS вместо раздела ASP.NET используйте раздел IIS, а затем значок «Правила авторизации».