CSS не применяется на странице ASP.NET без аутентификации

При разработке (отлично работает в реальном времени) страницы нашего веб-сайта не получают правильный CSS, пока пользователь не аутентифицируется (не входит в систему).

Таким образом, формы входа и выхода выглядят плохо, но, оказавшись внутри сайта, CSS снова работает.

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
14
0
10 563
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Ответ принят как подходящий

Убедитесь, что сам файл CSS не находится в защищаемой области. При необходимости вы можете вручную исключить файл через web.config.

Исключите вручную, добавив в раздел <Configuration> следующее: <location path = "css"> <system.web> <authorization> <allow users = "*"> </allow> </authorization> </system.web > </location>

JamesSugrue 11.09.2008 05:14

Это хорошо. Тогда как это работает в вашей производственной среде? У вас должна быть такая же проблема, если только этот раздел не отсутствует в вашем dev web.config

Gulzar Nazim 11.09.2008 05:21

У меня точно такая же проблема - страница входа в систему не стилизована на dev и отлично работает на продакшене. web.config точно такой же, за исключением строк подключения и настроек отладки. Это решение не решило для меня проблему.

Adam Pope 07.08.2009 14:16

Исправление: был тупой момент, он работает, если вы укажете весь путь, например. path = "App_Themes / Theme" или path = "App_Themes / Theme / file.css"

Adam Pope 07.08.2009 14:20

Я обнаружил, что это не решило мою версию проблемы. Я обнаружил, что для некоторых людей это было связано с IIS 7. Посмотрите, помогут ли они: stackoverflow.com/questions/6531250/… или форумы.iis.net/p/1173012/1961218.aspx

Ludington 18.01.2012 22:32

Мое решение заключалось в том, что IIS 7.5 требует, чтобы IUSR был предоставлен доступ для чтения. Я предполагаю, что учетные данные анонимного доступа отделены от пользователя пула приложений.

Ludington 18.01.2012 23:48

Можете ли вы попробовать использовать такой инструмент, как Скрипач или HttpWatch, и проверить, действительно ли запрос идет на файл .css со страницы входа. Убедитесь, что коды возврата - 200. Это может быть из-за проблемы с относительным путем в вашем поле разработчика.

Чтобы позволить неаутентифицированному пользователю видеть ваши файлы .css (или любой другой файл / каталог), вы можете добавить элемент местоположения в свой файл web.config, указывающий на файл .css.

<configuration>
   <system.web>
      // system.web configuration settings.
   </system.web>
   <location path = "App_Themes/Default/YourFile.css">
      <system.web>
         <authorization>
            <allow users = "*"/>
         </authorization>
      </system.web>
   </location>
</configuration>

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

Чтобы исправить это, я открыл Диспетчер IIS -> IIS: Проверка подлинности -> Выберите «Анонимная проверка подлинности» -> Щелкните Действия: Изменить .. (или щелкните правой кнопкой мыши) -> Выберите «Удостоверение пула приложений»

Теперь попытки анонимного доступа используют IIS_IUSRS с правильными правами доступа к файлам.

Это было! Спасибо за этот ответ.

VG1 22.08.2018 21:55

Другие вопросы по теме