ASP.NET MVC 3: я не могу перейти к своему каталогу «Контент», пока не авторизован - PullRequest
4 голосов
/ 26 апреля 2011

Все, я впервые развертываю приложение MVC 3 на тестовом сервере.Приложение работает так же, как и ожидалось локально из Кассини.Однако на сервере через IIS он не будет отображать CSS, пока я не буду аутентифицирован.Если я пытаюсь перейти к localhost / Content / Site.css, он перенаправляет меня на страницу входа.Я проверил в IIS и анонимная аутентификация включена.

Есть идеи, в чем может быть проблема?

Спасибо!

Ответы [ 4 ]

5 голосов
/ 22 мая 2012

У меня была похожая проблема. Для меня ответом было дать Чтение разрешений для папки IUSR , а также IIS_IUSRS .

0 голосов
/ 29 августа 2012

Вы не можете использовать файлы маршрутизации или web.config для защиты вашего MVC приложение. Единственный поддерживаемый способ защитить ваше приложение MVC - применить атрибут [Authorize] к каждому контроллеру и действию метод (кроме методов входа / регистрации). Создание безопасности решения, основанные на текущей области, являются очень плохой вещью и откроют ваше приложение к уязвимостям.

Вы можете прочитать больше здесь .

Вы можете контролировать свой метод аутентификации в файле web.config :

<authentication mode="Forms">
  <forms loginUrl="~/Account/LogOn" defaultUrl="~/Home/Index" timeout="2880" protection="All" slidingExpiration="true" />
</authentication>

, затем вы должны использовать атрибут [Authorize] для контроллера / действия, которое вы хотите защитить.
Как правило, вы не хотите защищать контроллер учетной записи.

Еще одна полезная ссылка .

0 голосов
/ 26 апреля 2011

Посмотрите на разрешения для файлов и убедитесь, что они совпадают с файлами, которые вы можете сопоставить.Во-вторых, проверьте ваш web.config, чтобы убедиться, что вы не используете там элементы авторизации, такие как:

<authorization>
    <allow users="user1, user2"/>
    <deny users=”?”/>
</authorization>
0 голосов
/ 26 апреля 2011

Добавьте следующее в ваш web.config. Вы должны сообщить asp.net, что следующий каталог может быть доступен независимо от того, аутентифицированы вы или нет. Это относится к настройке конфигурации в вашем файле web.config.

<configuration>
...

<location path="Content">
<system.web>
  <authorization>
    <allow users="*" />
  </authorization>
</system.web>
</location>

...

<system.web>
<authorization>
  <deny users="?" />
</authorization>
</system.web>
.....

</configuration>
...