Css и скрипты не работают до тех пор, пока пользователь не запустится на веб-сайте - Asp.NET MVC 3 Web Site
У меня есть сайт asp.net mvc 3, и я публикую его в iis 7.5 (фреймворк 4.0), и проблема в том, что css и скрипты не работают, используя пользовательский вход на веб-сайт. Итак:
- Веб-сайт был создан как виртуальный каталог и преобразован в приложение.
- Режим - это проверка подлинности форм.
- Я включаю в i-ых формы и анонимную аутентификацию.
В веб-конфигурации есть:
<location path="Content" allowOverride="true">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
<location path="Scripts" allowOverride="true">
<system.web>
<authorization>
<allow users="*" />
</authorization>
<globalization culture="pt-BR" uiCulture="pt-BR" />
</system.web>
</location>
<authorization>
<deny users="?"/>
</authorization>
Обс: DLL, которые я добавляю в каталог bin: System.Web.Helpers.dll, System.Web.Mvc.dll, System.Web.Routing.dll, System.Web.WebPages.dll.
Я попытался изменить путь в локализации как "~/Content", но получил тот же результат.
Я попытался включить тег в тег авторизации как:
<authorization>
<deny users="?"/>
<allow users="*"/>
</authorization>
Но я получил тот же результат.
Что мне не хватает?
Ответы
Ответ 1
Я понял это. Это было то, что я пропустил из своего контрольного списка при настройке нового приложения IIS: выберите приложение, дважды щелкните "Аутентификация", выберите "Анонимная аутентификация", затем "Изменить" и измените его, чтобы использовать идентификатор пула приложений. Убедитесь, что у пользователя есть разрешения на папку, содержащую сайт, как и другие.
Ответ 2
У меня тоже была эта проблема, и это не авторизация asp.net, а проблема - права на файлы в файловой системе.
Вам нужно убедиться, что сайт работает под учетной записью, имеющей доступ к файлам. Для моего внутреннего тестирования я обычно делаю сайт под моей учетной записью, но я думаю, что это не будет хорошей идеей безопасности, если вы размещаете ее публично. Вы можете установить это под дополнительными настройками → Учетные записи физического пути для веб-сайта.
Ответ 3
Попробуйте разрешить путь содержимого, где хранятся ваши скрипты и файлы css:
<configuration>
<location path="content" allowOverride="true">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
<system.web>
<authorization>
<allow roles="admin" />
<deny users="?" />
</authorization>
</system.web>
</configuration>
Ответ 4
Я вижу, что вы поняли это, и вы довольны своим ответом.
У меня также была эта проблема, но это была не проверка подлинности пула приложений. Вместо этого я разрешил всем пользователям доступ к местоположениям файлов css/js, поэтому по крайней мере страница входа в систему будет отображаться соответствующим образом до тех пор, пока пользователь не войдет в систему.
например. поместив этот файл web.config в корневой каталог /site/public (или везде, где собраны необходимые файлы css и js).
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</configuration>
Ответ 5
Я согласен с Mikael в том, что это могут быть права доступа к файлам; попробуйте предоставить разрешения для учетной записи Everyone
, и если она исправит вашу проблему - узнайте, какая учетная запись IIS используется для пула приложений, которую вы используете, и даете ей разрешения.
Кроме того, если он не работает, попробуйте поместить файлы web.config в папки Scripts и Content, только с атрибутами authorization
.
А также есть небольшая вероятность того, что вы перенацелили свою маршрутизацию каким-то образом, и она перехватывает реальные запросы файлов.
Ответ 6
IUSR обычно является пользователем олицетворения по умолчанию, настроенным для анонимной аутентификации. Если это так, я бы удостоверился, что IUSR имеет разрешения на чтение для соответствующих папок.
Вы также можете настроить сайт для использования другого пользователя, но я не уверен, что просто переключу сайт на запуск в качестве пользователя пула приложений. Пользователь пула приложений часто имеет больше разрешений, чем анонимный пользователь должен/должен иметь.