Web.config: подстановочные знаки в расположении и авторизации - PullRequest
13 голосов
/ 07 декабря 2010

В моем приложении 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 и заменить ее подстановочным знаком?
Я хочу войти в систему истраница восстановления и т. д. будет доступна независимо от культуры.

Ответы [ 2 ]

4 голосов
/ 10 декабря 2010

Я не верю, что вы можете поместить относительные пути в корневой web.config, но это не проблема.Вы можете использовать поддержку вложенных файлов Web.Config в своих интересах.

Вы можете поместить файл web.config, подобный этому, в любой из ваших подкаталогов (настраивая в соответствии с потребностями этого конкретного каталога) ивы получите поддержку, которую вы ищете.Также намного проще поддерживать, поскольку настройки ближе к файлам кода, которыми они управляют.

<?xml version="1.0"?>
<configuration>
    <system.web>
      <authorization>
        <deny users="*"/>
      </authorization>
    </system.web>
</configuration>

Общая конфигурация типов аутентификации, ролей и т. Д. Будет сделана в файле web.config в вашемкорневой каталог приложений.В результате вы не можете установить отдельную страницу входа в систему для каждого каталога из этого метода, но у вас может быть страница входа, которая автоматически обрабатывает перенаправление при необходимости (путем анализа значения ReturnURL QueryString).

1 голос
/ 10 декабря 2010

Глядя на эту запись, вы можете изменить расширение своей страницы входа и сделать что-то вроде следующего:

<system.webServer>
  <security>
    <requestFiltering>
      <fileExtensions>
        <add fileExtension=".login" allowed="true" />
      </fileExtensions>
    </requestFiltering>
  </security>
</system.webServer>

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

...