2017-04-25 25 views
0

GET要求をNTLM認証を要求するサーバーに送信しています。HttpClientでCachePolicyを設定した後の不正な応答

我々は UseDefaultCredentials = true

var defaultHandler = new WebRequestHandler 
{ 
    UseDefaultCredentials = true, 
    CachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.NoCacheNoStore), 
    AutomaticDecompression = DecompressionMethods.GZip, 
    AllowAutoRedirect = true, 
    UseCookies = true, 
    CookieContainer = new CookieContainer() 
}; 

を設定し、我々はキャッシュをオンにすることを決めたまではすべてが正常に働いていた。そのために

そのために

私たちは、それがサーバーを変更して、当社のCachePolicy

CachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.Default)に変化し 401 - unauthorizedで応答し始め、キャッシュが動作を変更設定する理由 WWW-Authenticate: NTLM

と一緒に任意のアイデアを送信していますか?

答えて

0

問題の根本的な原因は、サーバは当社のHttpClientはその応答をキャッシュされたので、下記のネゴシエーションステップはCacheから提供されていたの代わりに要求されて

Cache-Control: private

で応答していたということでした認証に失敗したサーバー

のキャッシュを無効にしました。401の応答です。我々はMozilla Developer Network状態

Cache-Control: no-cache, no-store, must-revalidate

としてそれを実施することを決定した読書をたくさんした後
関連する問題