2009-12-17 3 views
0

У меня есть приложение ASP.net 1.1.asp.net, наследование web.config и очистка настройки аутентификации

В подпапке я установил blogengine.net, который является приложением 2.0.

Папка установлена ​​как приложение и использует надлежащую структуру.

Это работает ... кроме проверки подлинности.

Проблема заключается в наследовании от web.config в корневом приложении.

Общим решением этой проблемы является использование «clear» в конфигурационном файле вашего вложенного приложения для каждой вещи, которую вы хотите сбросить.

<httpModules> 
    <clear/> 
</httpModules> 

Проблема заключается в том, что «ясно» не кажется, позволяет в тегах аутентификации:

<authentication mode="Forms"> 
    <clear/> 
    <forms... rest of my child app's settings for authentication...> 
</authentication> 

Делать это дает мне ошибку синтаксиса.

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

ОБНОВЛЕНИЕ: на ответ curious_geek один вариант - изменить корневую конфигурацию, чтобы не допускать наследование. Однако я понимаю, что это также заблокирует свойства system.config. Это обычно большая сделка? Это не мой сервер, поэтому задайтесь вопросом, будет ли это делать какие-то проблемы безопасности, которые могут не совпадать с администратором сервера.

ответ

3

Необходимо указать родительскому web.config no, чтобы принудительно наследовать наследование в дочернем приложении.

Если вы хотите остановить наследование раздела system.web дочернего приложения, тогда вы можете обернуть секцию system.web элементом местоположения, указанным ниже.

<location path="." inheritInChildApplications="false"> 

     <system.web> 

     </system.web> 

    </location> 

Вы также можете применить эту технику для прекращения наследования для раздела connectionstrings и appsettings.

PS: когда вы на самом деле добавить этот линии в web.config, визуальная студия не признает его действительным и пометить его как ошибки, но будьте уверены, что будет хорошо работать под IIS при развертывании .

+0

Насколько я понимаю, это также исключает возможность применения настроек системной конфигурации к корневому приложению. Это беспокойство? –

+0

@this .__ curious_geek Я обнаружил, что могу иметь несколько объявлений system.web, так что это отлично работает, я просто применяю это место к system.web, который содержит только элементы, которые я не хочу наследовать. Прекрасно работает. Спасибо за помощь! –

Смежные вопросы