Как указать корневое (/) расположение в web.config? - PullRequest
50 голосов
/ 20 февраля 2012

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

Корневое расположение обслуживается default.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=""> (сайт полностью не работает) и не смог заставить его работать.

Есть идеи?

Ответы [ 10 ]

39 голосов
/ 03 октября 2013

Попробуйте это:

<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>
6 голосов
/ 06 января 2014

используйте только

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

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

2 голосов
/ 30 ноября 2012

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

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

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

  <location path="~/Default.aspx">
    <system.web>
      <authorization>
        <allow users="*"/>
      </authorization>
    </system.web>
  </location>
2 голосов
/ 30 ноября 2012

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

2 голосов
/ 29 ноября 2012

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

Метод 1:

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

IIS7 setting to add your default page redirection

Метод 2

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

Дайте мне знать, если вам нужно больше подробностей об этом.

1 голос
/ 20 февраля 2012

Если вы хотите разрешить неаутентифицированным пользователям доступ только к 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>
0 голосов
/ 17 октября 2015

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

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

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

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

0 голосов
/ 02 сентября 2014

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

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

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

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

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

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

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

<location path=“AccessDenied.aspx“>
    <system.web>
        <authorization>
            <deny users=“?“/>
        </authorization>
    </system.web>
</location>
0 голосов
/ 29 августа 2012

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

...