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

Как указать расположение root (/) в web.config?

Как указать расположение корневого каталога в web.config, чтобы позволить пользователям, не прошедшим проверку подлинности, получить к нему доступ?

Корневое расположение выполняется по умолчанию .aspx, но пользователи обычно не видят default.aspx, они просто видят http://mysite.com/.

Итак, я добавил

  <location path="~/default.aspx">
    <system.web>
      <authorization>
        <allow users="*"/>
      </authorization>
    </system.web>
  </location>

Что работает, если пользователь нажимает mysite.com/default.aspx, но если пользователь нажимает mysite.com/ - он по-прежнему перенаправляется на страницу входа.

Я пробовал <location path="~"> (не помогает), а также <location path="~/">, <location path=""> (сайт завершается полностью) и не смог заставить его работать.

Любые идеи?

4b9b3361

Ответ 1

Попробуйте следующее:

<system.web>
    <urlMappings enabled="true">
        <add url="~/" mappedUrl="~/default.aspx" />
    </urlMappings>
    <authorization>
        <allow roles="admin"/>
        <deny users="*" />
    </authorization>
</system.web>
<location path="Default.aspx">
    <system.web>
        <authorization>
            <allow users="*" />
        </authorization>
    </system.web>
</location>

Ответ 2

использовать

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

или не писать путь, потому что путь по умолчанию - root (.)

Ответ 3

Вы можете достичь с помощью 2 метода

Метод 1:

Вы можете установить путь перенаправления к http://mysite.com/default.aspx в IIS, если какой-либо пользователь непосредственно приходит на ваш сайт. В IIS7 вы можете сделать это с помощью щелкнув по умолчанию. Здесь я приложил изображение для вашей справки

IIS7 setting to add your default page redirection

Метод 2

Вы можете пройти через этот URL членство в ASp.NET, чтобы установить свои настройки веб-конфигурации.

Сообщите мне, если вам нужно более подробно об этом.

Ответ 4

То, как мы это делали в прошлом, состояло в том, чтобы создать папку для всех функций, требующих входа в систему, и установить требуемую авторизацию для этой папки. Все aspx идут в эту папку. Корень сайта остается открытым.

Ответ 5

Возможно, вы используете аутентификацию форм no?

<authentication mode="Forms">
   <forms loginUrl="~/Default.aspx" />
</authentication>

Это решит вашу проблему. Альтернативой является:

  <location path="~/Default.aspx">
    <system.web>
      <authorization>
        <allow users="*"/>
      </authorization>
    </system.web>
  </location>

Ответ 6

Если вы хотите, чтобы неавторизованные пользователи могли получить доступ к default.aspx, вы можете использовать

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

до <system.web> и установите эту страницу по умолчанию на вашем веб-сервере.
В Visual Studio вы можете выбрать страницу и "Установить как стартовую страницу".

Если вы хотите разрешить доступ ко всем файлам в корневом каталоге, вам нужно создавать папки, в которые вы помещаете свои страницы, к которым должны быть доступны аутентифицированные пользователи.

Вы можете создать папку Secure, где вы можете поместить все защищенные страницы и изменить свой web.config следующим образом:

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

удаление

    <authorization>
        <deny users="?"/>
    </authorization>

Ответ 7

Чтобы указать корневой каталог, вы должны установить его вне блока местоположения.

<configuration> 
  <system.web>
    <authorization>
      <allow users="*"/>
    </authorization>
  </system.web>
</configuration>

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

<location path="AccessDenied.aspx">
    <system.web>
        <authorization>
            <deny users="?"/>
        </authorization>
    </system.web>
</location>

Ответ 8

Используйте это:

<location path="Default.aspx">
  <system.web>
    <authorization>
      <allow users="*"/>
    </authorization>
  </system.web>
</location>
<location path="~">
  <system.web>
    <authorization>
      <allow users="*"/>
    </authorization>
  </system.web>
</location>

Это работает для меня.

Ответ 9

Мерк был прав!

Я использовал

<location path="">
            <system.webServer>
                <httpRedirect enabled="true" destination="http://www.newpathdestination.com" exactDestination="true" httpResponseStatus="Permanent" />
            </system.webServer>
        </location>

на Windows netserver (не спрашивайте), не заставляя ничего между кавычками для пути к местоположению. Перенаправляет запрос на старую домашнюю страницу на новую домашнюю страницу.

Ответ 10

Если вы хотите указать корень каталога, используйте <location path="" >