2011-02-03 3 views
0

Возможно ли настроить файл web.config вашего сайта asp.net для использования разных настроек для пользователей, обращающихся к сайту через HTTPS?различные настройки web.config для http и https

(например, мне нужно иметь атрибут ValidateRequest для HTTPS доступа установлен неверно, но и для внутреннего доступа (с использованием HTTP) установлено верно ...)

спасибо!

+0

Что точка предлагая тот же сайт на http и https вместе? Почему бы просто не использовать https для внутреннего и внешнего? –

ответ

0

Отключить подтверждение запроса в файле Web.config:

<system.web> 
    <pages validateRequest="false"/> 
</system.web> 

И в файле Global.asax, добавить обработчик событий для BeginRequest вдоль линий:

public class Global : HttpApplication 
{ 
    public override Init() 
    { 
     base.Init(); 
     BeginRequest += ToggleValidation; 
    } 

    void ToggleValidation(object sender, EventArgs e) 
    { 
     if (Request.IsSecureConnection) 
      Request.ValidateInput(); 
    } 
} 
+0

Спасибо, это то, что мне нужно! – Nathan

1

Из соображений безопасности я рекомендовал бы развернуть внутренние и внешние сайты на разных сайтах. Это означает, что вы можете использовать внутреннюю проверку подлинности Windows и формировать аутентификацию извне и изменять любые другие параметры конфигурации, которые вы хотите. Это также означает, что вы можете ограничить поверхность атаки внешними злодеями, не предоставляя доступ к методам, предназначенным только для внутренних пользователей.

+0

Согласен. Если у вас есть возможность идентифицировать внутренние и внешние параметры сети, сделайте это. Разбейте сайт на две части, у них есть общая библиотека между ними, поэтому вы уменьшаете дублирование кода. В ответ на ваш вопрос, хотя, нет, у вас не может быть разного web.config на одном сайте, потому что при каждом изменении приложение перезапускается – Hawxby

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