Защита папки в веб-каталоге ASP.NET
Я давно работал на веб-сайте, и он работал нормально, недавно появилась проблема, которую мне нужно пройти.
На моем сайте есть папка с именем repository, которая содержит файлы, такие как текстовые документы и документы в формате PDF, и в идеале только зарегистрированные пользователи могут загружать их, но теперь было отмечено, что любой, кто не вошел на сайт, может даже загрузить их:(
Есть ли выход, чтобы справиться с этим, не перемещая папку из веб-каталога? Как и защита этой папки паролем, и только мои страницы могут получить доступ к содержимому, любой пример кода или ссылка будут очень полезны.
Мое веб-приложение находится в ASP.NET 2.0 с C#, а на сервере установлен IIS 6.0.
Заранее спасибо
Редактировать:
Мой Web.Config содержит следующие теги:
<authentication mode="Forms">
<forms slidingExpiration="true" loginUrl="Login.aspx" defaultUrl="HomePage.aspx" name=".ASPXMAIN" timeout="30">
</forms>
</authentication>
<authorization>
<deny users="?" />
</authorization>
2 ответа
Использовать <location />
теги в web.config, http://msdn.microsoft.com/en-us/library/b6x6shw7(v=vs.71).aspx
<location path="content">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
Посмотрите этот ответ для получения дополнительных ссылок на документацию MSDN: /questions/12124515/nastrojki-chlenstva-v-aspnet-webconfig/12124519#12124519
Вы можете попробовать эту конфигурацию в вашем Web.config (местоположение позволяет вам определить путь)
Этот пример использования roles
для того, чтобы спроектировать профиль.
Также используйте users
для того, чтобы спроектировать пользователя.
<location path="~/MembersOnly" >
<system.web>
<authorization>
<allow roles="Members"/>
<deny users="?" />
</authorization>
</system.web>
</location>