
Eu escrevi um servidor WebDAV personalizado que autentica usuários de um banco de dados e serve um sistema de arquivos virtual baseado em registros de um banco de dados. Ele está funcionando bem com clientes WebDAV de terceiros, mas não funciona com o miniredirecionador integrado do Windows ao mapear uma unidade para o local http.
O mais estranho é que no meu PC de desenvolvimento onde escrevi o servidor, consigo me conectar perfeitamente, porém QUALQUER outro computador que tente acessar o servidor não consegue se conectar com o mini-redirecionador.
Usei o Fiddler para analisar o tráfego de rede e tudo parece bem. Quando tento mapear a unidade, um cabeçalho OPTIONS é enviado e meus servidores respondem com 200 OK. Em seguida, o mini-redirecionador envia um método PROPFIND com profundidade 0. Meu servidor responde com um 401 não autorizado. Isso abre uma caixa de diálogo de login para usuário e senha. Após inserir a senha, uma nova solicitação PROPFIND é enviada, mas desta vez com o cabeçalho de autorização. Tudo parece funcionar bem, meu servidor aceita as credenciais de login e responde com uma resposta multistatus 207 com um "HREF" para o diretório raiz. Neste ponto, o mini-redirecionador traz o prompt de login novamente e faz isso 3 vezes no total antes de falhar na conexão com um erro dizendo que o servidor não pode ser encontrado. O que é estranho é que o servidor foi encontrado, posso ver no Fiddler e o servidor está respondendo conforme o esperado.
Todos os outros clientes WebDAV de terceiros têm uma troca semelhante com meu servidor e se conectam e exibem uma listagem de diretórios perfeitamente. Apenas o mini-redirecionador falha. E como mencionei acima, funciona perfeitamente na minha máquina de desenvolvimento com mini-redirecionador (embora o servidor IIS 7.5 ao qual estou me conectando não esteja na minha máquina de desenvolvimento). Todos os outros computadores não conseguem se conectar. Certifiquei-me de usar o hack do registro para permitir a autenticação básica em um site HTTP não seguro. Até mudei meu servidor para um site HTTPS seguro com um certificado SSL, caso esse fosse o problema, e ainda não funciona. Alguém tem alguma idéia. Estou pensando que tem que ter algo a ver com minha configuração do IIS 7.5 no servidor ou com uma configuração em todas as outras máquinas clientes, exceto minha máquina de desenvolvimento, porque meu código parece estar bem, o servidor parece responder bem ao mini -redirectors solicitações, ele simplesmente não mapeia a unidade após a resposta multistatus 207, como faz com todos os outros clientes.
Qualquer ajuda seria muito apreciada. O que é frustrante é que eu previ que o mini-redirecionador seria o mais difícil de fazer funcionar, então fiz com que funcionasse primeiro na minha máquina de desenvolvimento antes de testá-lo com todos os outros clientes, então pensei que estava em boa forma até tentar conectar-me em outro computadores e vi que estava falhando, mas apenas com o mini-redirecionador. Infelizmente, o mini-redirecionador é o mais fácil de usar para meus clientes em potencial, por isso é fundamental que funcione com o mini-redirecionador. Posso fornecer as respostas/solicitações do Fiddler se isso ajudar alguém a depurar isso comigo.
Responder1
O Microsoft WebDav Redirector tem um bug conhecido que não permite que você use um namespace XML padrão. Depois de adicionar um prefixo de namespace e marcar todos os meus elementos xml com ele, meu problema desapareceu.
http://lists.w3.org/Archives/Public/public-html/2011Jan/0263.html