Авторизация в ASP.NET 4

У меня есть сайт, работающий в ASP.NET 4.0 на Windows 7. Ultimate.
Он использует FormsAuthentication с красивой маленькой страницей входа в систему, и все это подходит для входа в систему и аутентификации.

Что НЕ работает нормально, так это переопределение авторизации каталога в подкаталогах.

Я хочу, чтобы как аутентифицированные, так и неаутентифицированные пользователи имели доступ к каталогам inc и images, чтобы страница входа могла быть правильно оформлена в стиле CSS и имела логотип и тому подобное наверху.

Хорошо, достаточно просто, правда? Я попытался разрешить анонимный доступ к этим папкам с помощью тега <location> в корневом файле web.config следующим образом:

<location path="images">
    <system.web>
        <authorization>
            <allow users="*,?" />
        </authorization>
    </system.web>
</location>

а также отдельный файл web.config в целевых каталогах следующим образом:

<?xml version="1.0"?>
<configuration>
    <system.web>
        <authorization>
            <allow users="*,?" />
        </authorization>
    </system.web>
</configuration>

но по какой-то причине он не позволяет анонимному пользователю заходить в эти каталоги. Я подтвердил, что это связано с авторизацией, попытавшись перейти непосредственно к одному из URL-адресов изображения, и это не удалось. Но после входа я могу нормально его подтянуть.

Было ли что-то изменено в .NET 4.0 в отношении авторизации, что это не будет работать? Я проделал то же самое на сайтах 2.0 и 3.5 без проблем.


person eidylon    schedule 02.09.2010    source источник


Ответы (1)


Разобрался в этом. Я переместил каталог своего веб-сайта из каталога по умолчанию. И хотя IIS предоставил группе IIS_IUSERS разрешение на этот каталог, он по какой-то причине не предоставил права пользователя IUSR на этот каталог. Добавил его вручную, и БУМ, заработало!

person eidylon    schedule 22.09.2010