У меня чертовски много времени пытается решить проблему с аутентификацией, используя HttpWebRequest.
Итак, у нас есть SOA-решение с балансировкой нагрузки. Частью решения является то, что все запросы должны быть аутентифицированы (с использованием аутентификации Windows). Другая часть решения заключается в том, что балансировщик нагрузки должен иметь анонимный доступ к странице поддержки активности. Итак, мы выполнили соответствующие разделы web.config, как показано ниже
<location path="hello.aspx" allowOverride="false">
<system.web>
<authorization>
<allow users="?" />
</authorization>
</system.web>
</location>
<system.web>
<authentication mode="Windows" />
<authorization>
<deny users="?" />
</authorization>
...
</system.web>
мы правильно настроили httpRequest, как показано ниже
httpRequest.UseDefaultCredentials = true;
httpRequest.CachePolicy = new RequestCachePolicy(RequestCacheLevel.Default);
так вот в чем проблема. Когда включена только встроенная аутентификация, все работает отлично. Однако когда включена анонимная и встроенная аутентификация (с определенным выше web.config), мы получаем дополнительный заголовок, возвращающийся
Cache-Control: private
Это вызывает у нашего клиента недовольство. Мы можем установить CachePolicy на NoCacheNoStore, но это не идеально, потому что другие запросы могут и должны быть кэшированы. Установка clientCache DisableCache не имеет никакого эффекта.
Любые идеи будут оценены.