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>

Я не пробовал это, но возможно, что-то попробовать.