Подтвердить что ты не робот

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>

Но я получил тот же результат.

Что мне не хватает?

4b9b3361

Ответ 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 имеет разрешения на чтение для соответствующих папок.

Вы также можете настроить сайт для использования другого пользователя, но я не уверен, что просто переключу сайт на запуск в качестве пользователя пула приложений. Пользователь пула приложений часто имеет больше разрешений, чем анонимный пользователь должен/должен иметь.