Recebo um erro 403 com meu programa Delphi WebDAV e o cliente CarotDAV não funciona bem

Aug 15 2020

Eu tenho um IIS e WebDAV no windows 10. Agora tentei o componente Delphi 10.4 Webdav de / n Software que funciona bem para recuperar um arquivo específico via WebDAV no modo SSL (https). Mas quando eu quero tentar obter a lista de diretórios, recebo um erro HTTP 403. No arquivo de log do servidor, vejo que a entrada PROPFIND tem a nota de erro 403. É semelhante a esse motivo: IIS-403 err

Tem alguem aqui uma ideia onde eu poderia resolver este problema. Muito obrigado.

Respostas

WalterSchrabmair Aug 19 2020 at 11:33

O motivo é: (Respondido por Hugh Wright do / n software)

Existem várias causas possíveis para esse erro. Usuários anteriores que tiveram erros semelhantes os corrigiram alterando a propriedade de profundidade do componente WebDAV. Por padrão, o componente WebDAV usa uma profundidade infinita ao chamar certos métodos, incluindo FindProperties e ListDirectory. Alguns servidores não oferecem suporte a solicitações com uma profundidade infinita e podem retornar um erro 403 quando a solicitação é feita.

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

Consegui confirmar que o problema era a propriedade de profundidade. Por padrão, CarotDAV usa uma profundidade de 1 (Filhos Imediatos), e nosso componente não.