Recebo um erro 403 com meu programa Delphi WebDAV e o cliente CarotDAV não funciona bem
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
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.