Wie Sie Windows (Vista) zu vermeiden „double“ WebDAV-Anforderungen zu tun

StackOverflow https://stackoverflow.com/questions/666553

  •  21-08-2019
  •  | 
  •  

Frage

Wir verwenden DIGEST-Authentifizierung für unseren WebDAV-Zugang. Wir beobachten, dass Windows-Clients zweimal jede Anfrage senden. Erste Anfrage hat keine Authorization-Header (und erhält 401-Antwort), die zweite Request-Header Authorization hat (und wird in der Regel richtige Antwort).

Während Benutzer wahrscheinlich können nicht sehen, es macht ganzen Webdav Zugang langsamer als notwendig.

Ist es möglich, dieses Verhalten irgendwie zu vermeiden? Vielleicht ist dies eine besondere Antwort, das Windows wird überzeugen, nicht zu tun? Wenn wir statt DIGEST verwenden BASIC, es funktioniert gut

(Einzel Anfrage nur mit Authorization Header immer enthalten tun)
War es hilfreich?

Lösung

Ich glaube, dass die Methode, die Sie beschrieben, die eine „Challenge / Response“ -Verfahren genannt wird, ist das bestimmt Verhalten für WebDAV. Zumindest ist es gemäß die Spezifikationen . Die erste Anforderung ohne Auth-Header erforderlich ist; die Antwort von WebDAV enthält eine nonce die nächste Anforderung zu validieren, zu helfen abzulenken gegen zum Beispiel Replay-Attacken.

Also, Fazit: Sie können nicht, und nicht versuchen, dieses Verhalten zu vermeiden.

In Bezug auf Ihre Nicht-Windows-Clients, die diese ... ist es möglich machen, dass sie das Caching und die Wiederverwendung der Nonce in irgendeiner Weise nach einer anfänglichen Challenge / Response-Aufruf. Dies wird sicherlich in den Spezifikationen erlaubt - auch wenn die nonce soll ein Einweg- Element sein, die Spezifikationen erlauben WebDAV-Server die Nonce kurzlebig über mehrere Anforderungen zu machen. Es ist möglich, dass Ihre Nicht-Windows-Clients in der Lage sind Ihren WebDAV-Server zu erkennen und entsprechend zu handeln, aber die Windows-Clients nicht.

In diesem Fall weiß ich nicht, von einer Arbeit um andere als die Nutzer zu bitten, einen Client zu finden, die ein Nonce-Caches. Leider kann ich Ihnen nicht helfen, einen solchen Client finden. Mein Google-Fu hat in dieser Hinsicht versagt.

Andere Tipps

Sie können auch so genannte „Vorauthentifizierung“ erforschen. Vorauthentifizierung ist die erste Anforderung mit einem Authentifizierungs Header Senden eine inital anonyme Anforderung im Gegensatz zu senden.

Während Anwendungen und Web-Services für diese sind ideal, da Sie in der Regel vorher wissen, ob eine Authentifizierung erforderlich ist, Sie in der Regel nicht wissen, ob eine Website eine Authentifizierung erfordert vorher.

WebFolders / WebDAV ist ein Sonderfall, aber auch hier sind Sie nicht sicher.

Das Problem mit Vorauthentifizierung ist, dass Sie möglicherweise Informationen an eine Website senden, die Sie nicht unbedingt vertrauen. Standardauthentifizierung würde den Schlüssel zum Königreich (Benutzer / Passwort im Klartext) gibt sie weg, aber Verhandeln, NTLM und Digest ist nicht so schlecht.

Sie können einen Blick hier auf preauthenticating in .Net für einen Web-Service, die ich die anfänglichen 401 erfolgreich beseitigen verwendet haben.

Wenn Sie mit dem Windows-Client WebFolder struggeling Sie könnten a href einen Blick auf <= "http://www.greenbytes.de/tech/webdav/webfolder-client-list.html" rel =“haben wollen nofollow noreferrer "> diese Problemliste im Greenbytes WebDav-Website . Wenn Sie Vista spezifische Details aufgefallen, nicht in der Liste enthalten ist, notieren Sie sich bitte an die Redaktion senden.

Eine Arbeit um, wenn Sie nichts dagegen haben, ein weniger sicheres Setup erlaubt ist anonyme Verzeichnishierarchie Listing PROPFIND-Anfragen zu ermöglichen und authentifizieren alles andere; finden Sie unter http://blog.klinsight.com/2013/02/ windows-webdav-double-authentication.html - (ich schrieb, dass Post für meine Arbeit). Die Zeitersparnis ist signifikant.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top