J'obtiens une erreur 403 avec mon programme Delphi WebDAV ni le client CarotDAV ne fonctionne correctement

Aug 15 2020

J'ai un IIS et WebDAV sous Windows 10. Maintenant, j'ai essayé le composant Delphi 10.4 Webdav de / n Software qui fonctionne très bien pour récupérer un fichier particulier via WebDAV en mode SSL (https). Mais lorsque je veux essayer d'obtenir la liste de l'annuaire, j'obtiens une ERREUR HTTP 403. Dans le fichier journal sur le serveur, je vois que l'entrée PROPFIND a la note d'erreur 403. Il en va de même pour cette raison: erreur IIS-403

A quelqu'un ici une idée où je pourrais résoudre ce problème. Merci beaucoup.

Réponses

WalterSchrabmair Aug 19 2020 at 11:33

La raison en est: (Réponse de Hugh Wright de / n software)

Il existe plusieurs causes potentielles à cette erreur. Les utilisateurs précédents qui avaient eu des erreurs similaires l'ont corrigé en modifiant la propriété depth du composant WebDAV. Par défaut, le composant WebDAV utilise une profondeur infinie lors de l'appel de certaines méthodes, notamment FindProperties et ListDirectory. Certains serveurs ne prennent pas en charge les demandes avec une profondeur infinie et peuvent renvoyer une erreur 403 lorsque la demande est effectuée.

 Webdav1.User := 'username';
 Webdav1.Password := 'password';
 Webdav1.AuthScheme := authBasic;
 Webdav1.Depth := dpImmediateChildren; // The server will operate on the

                                    // collection resource URI and all of

                                    // its immediate member resources (but

                                    // on none of their member resources).

 Webdav1.FindProperties('ResourceURI'); 

J'ai pu confirmer que le problème était la propriété Depth. Par défaut, CarotDAV utilise une profondeur de 1 (enfants immédiats), et notre composant ne le fait pas.