Я удалил добавление и сохранил удаление: D

у защитить определенные папки и ресурсы в моем приложении, которые находятся за пределами маршрутов для моего приложения MVC. Я хочу, чтобы эти ресурсы были доступны только для аутентифицированных пользователей (какая роль не имеет значения, пока они аутентифицированы).

Первоначально казалось, чтоUrlAuthorizationModule был бы ответ. Я следил за этой статьей,Понимание авторизации URL IIS 7.0и я могу заставить модуль работать в том смысле, что он реагирует на элементы конфигурации вweb.config.

Моя текущая проблема заключается в том, что ясчитать он принимает правила, основанные на анонимном пользователе в IIS, а не на аутентифицированном пользователе вличность asp.net.

Тестовая среда

Я использую стандартhtml файл для тестирования вместо того, чтобы пытаться загрузить скрипт, так как он также будет загружен вне MVC-конвейера.

ВVisual Studio 2015.Новый по умолчанию.net 4.6.2 веб-проектШаблон MVCАутентификация =Individual User AccountsIIS 8 (для тестирования вне Visual Studio)Аутентификация -> Анонимная аутентификация (включена)

добавить вweb.config

<configuration>
...
<location path="Data">
  <system.webServer>
    <security>
      <authorization>
        <clear/>
        <add accessType="Deny" users="*"/>
        <add accessType="Allow" users="?"/>
      </authorization>
    </security>
  </system.webServer>
</location>
...
</configuration>

Добавить в структуру папок

/Data/Protected.html // this file just has some basic Hello World content to display so you can see if it is loaded or not.
Наблюдаемые результатыС этой конфигурацией все вData путь всегда запрещен, не имеет значения, аутентифицирован ли пользователь или нет.То же самое верно, если я переключаю 2 строки дляDeny а такжеAllow вweb.config.Если я полностью уберу строку сDeny тогда доступ всегда разрешен, даже если пользователь не аутентифицирован.Если я добавлю роль и используюroles с именем роли вместоusers Атрибут роли также полностью игнорируется.Что теперь?

Что мне не хватает? Как я могу получитьURL авторизация модуль для работы с MVC / WebAPI иASP.NET Identity Individual user accounts или это просто невозможно?

Я также открыт для альтернативных идей, возможно, ответ заключается в написанииHttpModule или жеHttpHandler?

Примечания стороны

Почему и особенности

Эти ресурсы представляют собой файлы JavaScript, короче говоря, только часть сценариев должна быть доступна не прошедшим проверку пользователям. В корневом каталоге есть 2 каталога: один для аутентифицированной части приложения и один для неаутентифицированной части приложения. Причина этого не имеет ничего общего с авторизацией пользователя или безопасностью в приложении, а заключается в ограничении открытой области приложения неаутентифицированными запросами.

Ответы на вопрос(1)

Ваш ответ на вопрос