Защита папки в веб-каталоге 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> 
Другие вопросы по тегам