Ricevo un errore 403 con il mio programma Delphi WebDAV né il client CarotDAV funziona bene

Aug 15 2020

Ho un IIS e un WebDAV sotto Windows 10. Ora ho provato il componente Delphi 10.4 Webdav da / n Software che funziona bene per il recupero di un particolare file tramite WebDAV in modalità SSL (https). Ma quando voglio provare a ottenere l'elenco della directory ottengo un errore HTTP 403. Nel file di registro sul server vedo che la voce PROPFIND ha la nota di errore 403. È simile a questo motivo: IIS-403 err

Qualcuno ha un'idea di dove potrei risolvere questo problema. Molte grazie.

Risposte

WalterSchrabmair Aug 19 2020 at 11:33

Il motivo è: (Risposta di Hugh Wright da / n software)

Esistono diverse potenziali cause di questo errore. Gli utenti precedenti che avevano riscontrato errori simili lo hanno risolto modificando la proprietà di profondità del componente WebDAV. Per impostazione predefinita, il componente WebDAV utilizza una profondità infinita quando chiama determinati metodi, inclusi FindProperties e ListDirectory. Alcuni server non supportano le richieste con una profondità infinita e potrebbero restituire un errore 403 quando viene effettuata la richiesta.

 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'); 

Sono stato in grado di confermare che il problema era la proprietà di profondità. Per impostazione predefinita, CarotDAV utilizza una profondità di 1 (Immediate Children) e il nostro componente no.