Web.config: подстановочные знаки в местоположении и авторизации
В моем приложении ASP.Net я использую маршрутизацию URL.
Формат URL-адреса несколько напоминает: http://site/{culture}/project/{id}
.
Чтобы пользователи могли посетить страницу входа и восстановления, я добавил следующие данные в свой web.config:
<location path="en-GB/login">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
<location path="nl-NL/login">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
<location path="login">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
Есть ли форма обозначения, чтобы я мог пропустить часть en-GB и заменить ее подстановочным знаком?
Я хочу, чтобы страница входа и восстановления и т.д. Была доступна независимо от культуры.
Ответы
Ответ 1
Я не верю, что вы можете размещать относительные пути в корневом web.config, но это не проблема. Вы можете использовать поддержку вложенных файлов Web.Config в своих интересах.
Вы можете поместить файл web.config, похожий на этот, в любой из ваших подкаталогов (настраиваясь в соответствии с потребностями этого конкретного каталога), и вы получите поддержку, которую вы ищете. Это также намного легче поддерживать, поскольку настройки ближе к файлам кода, которые они контролируют.
<?xml version="1.0"?>
<configuration>
<system.web>
<authorization>
<deny users="*"/>
</authorization>
</system.web>
</configuration>
Общая конфигурация для типов аутентификации, ролей и т.д. будет выполнена в web.config в корневом каталоге приложений. В результате вы не можете установить отдельную страницу входа в каталог из этого метода, но у вас может быть страница входа, которая автоматически обрабатывает перенаправление при необходимости (анализируя значение ReturnURL QueryString).
Ответ 2
Глядя на этот, вы можете изменить расширение своей страницы входа и сделать что-то вроде следующего:
<system.webServer>
<security>
<requestFiltering>
<fileExtensions>
<add fileExtension=".login" allowed="true" />
</fileExtensions>
</requestFiltering>
</security>
</system.webServer>
Я не пробовал это, но возможно, что-то попробовать.