Я успешно создал тестовую зону на своем веб-сайте, которая аутентифицирована с использованием форм auth на iis 8. Я использую это в интегрированном режиме с asp.net, который, как я понимаю, должен означать, что с правильный файл web.config. Я могу заставить сервер использовать auth asp.net для всех, а не только для URL-адресов. Если я попытаюсь перейти на страницу, в которой я еще не ввел учетные данные, она возвращает ошибку 403, что я и ожидаю. Однако, если я точно помещу путь к файлу, хранящемуся на сайте, он загружает файл без необходимости предоставления учетных данных. Вот мой текущий уровень верхней web.config:Аутентификация форм не применяется к статическим файлам
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation debug="false">
</compilation>
<authentication mode="Forms">
<forms name=".ASPXFORMSAUTH" loginUrl="default.aspx" />
</authentication>
<authorization>
<allow users="*" />
</authorization>
</system.web>
<location path="staff/test/test">
<system.web>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
</location>
<system.webServer>
<modules>
<remove name="FormsAuthenticationModule" />
<add name="FormsAuthenticationModule" type="System.Web.Security.FormsAuthenticationModule" />
<remove name="UrlAuthorization" />
<add name="UrlAuthorization" type="System.Web.Security.UrlAuthorizationModule" />
<remove name="RoleManager" />
<add name="RoleManager" type="System.Web.Security.RoleManagerModule" />
<remove name="DefaultAuthentication" />
<add name="DefaultAuthentication" type="System.Web.Security.DefaultAuthenticationModule" />
</modules>
</system.webServer>
Область /staff/test/test
имеет документ слово в нем. Если я нахожу www.website.com/staff/test/test/test.doc
в мой браузер, это файл загрузки.
Что я должен изменить, чтобы защитить этот файл?
может у попробовать добавить это к вашим модули узла runAllManagedModulesForAllRequests = «истина»? – Sushil
@ Сушиль, пока это сработает, это не обязательно и переполняет. [Этот ответ] (http://stackoverflow.com/a/21970733/1810243) показывает, как помещать определенные типы файлов через конвейер ASP.NET, чтобы их можно было защитить через web.config. – MikeSmithDev
спасибо @MikeSmithDev. httphandler всегда лучше подходит для этого случая. – Sushil