настройки пути к местоположению не работают в IIS 7.5, из-за чего изображения не отображаются на странице входа - PullRequest
0 голосов
/ 29 марта 2012

У нас есть веб-приложение, которое не отображает изображения, css, если пользователи не вошли в систему. Мы используем проверку подлинности с помощью форм

    <authentication mode="Forms">
    <forms loginUrl="~/Account/LogOn" timeout="2880" cookieless="UseCookies" />
    </authentication>

Теперь мы специально используем это в разделе конфигурации в файле web.config, чтобыдать доступ анонимному пользователю к папке «контент».

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

Но по-прежнему нет изображений, не отображается css, пока вы не вошли в систему. И если мы попытаемся получить прямой доступ к изображению, он перейдет на страницу входа.Кто-нибудь знает, что происходит?

1 Ответ

0 голосов
/ 17 сентября 2012

Если вы пытаетесь отобразить изображения в IIS 7.5, вы заметили, что есть два способа ( первый здесь ), чтобы использовать тег <location>, который меня даже смущает.

В любом случае это может быть полезно, если вы используете IIS 7.5.

Пример ниже работает для приложения MVC, ориентированного на NET 4.5, которое будет отображать папку для группы и скрывать ее для другой.group.

<configuration>
  <system.web>
    <!-- allow only windows users to use app (no anonymous will access it)-->
    <authentication mode="Windows" />
    <authorization>
      <deny users="?" />
    </authorization>
  <system.web>

  <!-- main security, allowing only groups: Clowns and Nerds -->
  <system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
        <security>
            <authorization>
                <remove users="*" roles="" verbs="" />
                <add accessType="Allow" roles="Domain\Clowns" />
                <add accessType="Allow" roles="Domain\Nerds" />
            </authorization>
        </security>
        <defaultDocument enabled="false" />
  </system.webServer>

  <!-- Here we show /images_for_clowns folder ONLY to Clowns group -->
  <location path="images_for_clowns" inheritInChildApplications="false">
     <system.webServer>
       <validation validateIntegratedModeConfiguration="false" />
        <security>
            <authorization>
                <clear />
                <remove users="*" roles="" verbs="" />
                <add accessType="Allow" roles="Domain\Clowns" />
            </authorization>
        </security>
        <defaultDocument enabled="false" />
     </system.webServer>
  </location>

  <!-- Here we show /images_for_nerds folder ONLY to Nerds group -->
  <location path="images_for_nerds" inheritInChildApplications="false">
     <system.webServer>
       <validation validateIntegratedModeConfiguration="false" />
        <security>
            <authorization>
                <clear />
                <remove users="*" roles="" verbs="" />
                <add accessType="Allow" roles="Domain\Nerds" />
            </authorization>
        </security>
        <defaultDocument enabled="false" />
     </system.webServer>
  </location>

Возможно, другой трюк будет использовать

<location path=".">
     <system.webServer>...

для установки разрешений для корневой папки!Надеюсь, это может помочь большему количеству людей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...