Проблема, как вы уже догадались, в том, что файлы CSS защищены вашими правилами авторизации. Причина, по которой это отличается между применением правил в web.config
и применением с помощью атрибутов Authorize
, заключается в том, что поскольку среда MVC не отправляет запросы на файлы, которые существуют на диске, через ваши контроллеры, запросы на файлы CSS (которые существуют на диске) никогда не видят атрибута. Однако они видят правила авторизации в web.config
.
Есть несколько способов решить эту проблему. Либо один будет работать нормально.
- Используйте тег
<location>
, чтобы разрешить пользователям запрашивать ваши CSS-файлы.
- Пропустить авторизацию в
web.config
и использовать вместо нее атрибут Authorize
. Если вы сделаете это, вы можете применить атрибут глобально в global.asax.cs
, поэтому вам не нужно будет помнить, что вы делали это на каждом контроллере.