ASP.Net Directory Security - PullRequest
       6

ASP.Net Directory Security

2 голосов
/ 05 января 2012

У меня есть каталог в корне моего сайта, который содержит некоторые файлы (обычно html). Эти файлы должны быть доступны только для вошедшего в систему пользователя. Как мне этого добиться? Я считаю, что это можно сделать с помощью подражания, но я понятия не имею, как именно я могу это реализовать. Не могли бы вы направить меня в правильном направлении?

В настоящее время я добавил эти настройки в мой файл Web.config:

<location path="TestData"> <!-- 'TestData' is the directory which I want to deny access for -->
    <system.web>
        <identity impersonate="true"/>
        <authorization>
            <deny users="?"/>
        </authorization>
    </system.web>
</location>

Что мне нужно делать в кодировании?

PS: это приложение веб-сервиса.

Обновление: Работает частично !!! чтобы быть конкретным: Он запрещает только страницы .aspx, и даже зарегистрированный пользователь тоже не может получить доступ к файлам.

Я использую Windows аутентификацию.

Ответы [ 3 ]

1 голос
/ 05 января 2012

Вам не нужно подражать. Если у вас есть формы или проверка подлинности Windows, ваш <deny users="?"/> будет запрещать всех анонимных пользователей. Чтобы ответить на ваш вопрос: нет, вам не нужно явно запрещать пользователям вашего кода.

Как выполнить простую проверку подлинности с помощью форм

Чтобы защитить файлы не-ASP.NET, вам необходимо зарегистрировать HttpHandler, который сделает это. Пожалуйста, смотрите эту справку о том, как зарегистрировать обработчик .

0 голосов
/ 05 января 2012

Вам нужно добавить

<authorization>
      <deny users="?"/>
</authorization>

в <system.web></system.web>

И использовать аутентификацию формы как

[Обновить]: при использовании windows аутентификация см.

* MSDN 1014 *

0 голосов
/ 05 января 2012

вам не нужно подражать.Impersonate предназначен для запуска приложения от имени другого пользователя, чем пользователь пула приложений в iis. source

Если вы используете проверку подлинности с помощью форм / Windows, тогда

<authorization>
    <deny users="?"/>
</authorization>

должно быть достаточно и заблокировать пользователей, которые не вошли в систему

...