문제

우리는 여기에는 asp.net 3.5 응용 프로그램을 사용하여 NTLM 기반으로 윈도우 인증이 있습니다.시스템에서 실행하는 개인 네트워크는 실제로 배포되는 다른 지리적 장소(VPN 을 통해 연결).

우리는 지금도하는 웹사이트를 최적화의 성능을 제공합니다.기 때문에 이 방법 NTLM 작품의 모든 새로운 요청이 IIS 로 구성된 3 가지 요청을 하는 동안 첫 번째 2 401 응답합니다.우리는 노력의 양을 최소화하기 위해 이러한 요청의 시작 부분에서만 있습니다.우리가 발견 솔루션입니다.불행하게도 그것은 아무것도 변경 하지 않은 그리고 우리는 계속 이 401 응답(는 시간을 소모).

하기 위해 트래픽을 참조하십시오 나는 먼저 사용 Fiddler 앱입니다.어떻게든 내가 사용하는 경우 Fiddler,거기에만 1 인증 프로세스의 시작 부분에서 세션(대로 정확하게 나)지만,때 나는 가까운 Fiddler 및 체크 트래픽을 통해 WireShark 나가는 것을 볼 수 있는 여전히 이 401 대응을 위해 각 요청을 합니다.

사용한 클라이언트는 IE6,IIS 버전 6.

할 수 있는 누군가가 조언을?

도움이 되었습니까?

해결책

NTLM/협상과는 달리,모든 다른 HTTP 인증 체계는 연결을 지향 프로토콜.

에서 IIS,다양한 설정을 제어하는지 여부 인증을 요구하는 모든 요청에 대해 이전에 인증된 연결을(예를들면AuthPersistSingleRequest).의 독립적인 설정하는 것,내가 믿 IIS 것이 자동으로 수요 re-인증 경우 게시물을 요청합니다.

하는 경우 서버는 손상 연결을 재사용할(예를들면을 보내어 연결:닫기 헤더를 응답을)수정해야 하기 때문에 그렇지 않으면 재인증이 발생합니다.을 쉽게 확인할 수 있습을 위한 이러한 인증은 재사용 foiling 헤더를 사용하여 Fiddler.

다른 팁

유일한 방법은 로그인 페이지에서만 NTLM을 사용하고 쿠키를 사용하는 것입니다. 여기

관련 주제에 대해; IIS7.0 및 Kerberos 인증을 사용하는 경우 AuthPersistNonntlm = True는 각 요청에 대해 401 왕복을 피하는 데 사용될 수 있습니다.

http://msdn.microsoft.com/en-us/library/aa347548(vs.90).aspx

http://blogs.technet.com/b/configurationmgr/archive/2010/06/03/solution-you-may-experience-spernice-sperformance-when-using-bits and-kerberos-authentication-on-configmgr- 2007-Distribution-Points.aspx

도메인에서 이것을 시도해 보셨습니까?

setspn -a FQDNServerName applicationPoolServiceAccount
setspn -a biosServerName applicationPoolServiceAccount

응용 프로그램 풀이 NTLM 인증 요청을 서비스 할 수 있습니다.

사이트의 IE6의 보안 설정 일 수 있습니다. 지역 인트라 넷 또는 신뢰할 수있는 사이트로 변경하십시오.

나는 똑같은 문제가 있습니다! 나는 당신과 같은 환경을 사용하고 있습니다. 피들러에서도 2 401도 보인다는 점을 제외하고. 나는 그 문제에 며칠을 보냈고 그냥 포기했다. Authpersistence도 저에게도 효과가 없었습니다. 그러나 여기에 내가 찾은 링크가 있습니다. 아마도 그들은 당신의 경우에 작동 할 것입니다.

http://msdn.microsoft.com/en-us/library/ms525244.aspx

http://www.microsoft.com/technet/prodtechnol/windowsserver2003/library/iis/b0b4ec5c-74f8-43e9-ac64-d8b852568341.mfr=true

http://technet.microsoft.com/en-us/library/cc786094.aspx

http://technet.microsoft.com/en-us/library/cc781339(ws.10).aspx

가상 디렉토리와 웹 사이트 수준 모두에서 플래그를 설정하려고했지만 도움이되지 않았습니다. IIS 대사 탐색기를 사용하여 해당 속성을 편집하고 있습니까? 속성을 편집하는 더 깨끗한 방법이며 XML 파일을 직접 편집하는 것보다 더 도움이 될 수 있습니다.

문제를 우회하는 한 가지 방법은 HTTP 응답에 캐시 제어 헤더를 어떤 페이지에서도 자주 변경하지 않을 리소스에 대해 삽입하는 것입니다. 제 경우에는 CSS를 캐시했습니다 (이를 최적화하기 위해 외부 CSS를 최대한 많이 사용), JS 및 IMG 파일. 홈페이지에로드되는 이러한 유형의 약 60 개의 파일이 있으므로 약 120 401 오류를 바로 제거 할 수있었습니다!

파일이 캐시 된 경우에도 401과 304가 여전히 생성되는 IF 수정 또는 E- 태그 기반 캐싱이 아닌 캐시 제어 헤더를 사용해야합니다.

나는이 문제를 제외 하고이 문제를 겪고 있었다. 내 사이트 (대부분의 사이트와 같은)는 JS 및 CSS 파일을 자체 디렉토리에 보관합니다. 그래서 저를위한 해결책은 단순히 IIS의 디렉토리로 이동하여 Anon Auth를 활성화하는 것이 었습니다 (간단히 말하지만이 게시물 덕분에 2 년이 걸렸습니다). 이제 사이트에는 여전히 Windows Auth가 필요하지만 JS 및 CSS 파일의 서브 디렉토리는 그렇지 않습니다. IOW, 완벽하게 작동하는 것 같습니다.

또한 JS 파일 (또는 해당 문제에 대한 CSS 파일)에 민감한 정보를 넣지 않을 것이며 귀하가하지 않다고 제안합니다. 그렇게한다면,이 파일의 민감한 정보를 이러한 디렉토리에서 분명히 이동하고 싶을 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top