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