Como obter o servidor WebDAV personalizado trabalhando com o mini-redirecionador MS

1

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 mini-redirecionador interno do Windows ao mapear uma unidade para o local http.

A coisa mais estranha, está no meu PC de desenvolvimento onde eu escrevi o servidor, eu posso conectar muito bem, no entanto qualquer outro computador que tenta acessar o servidor, não consegue se conectar com mini-redirecionador.

Eu 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 uma profundidade de 0. Meu servidor responde com um 401 não autorizado. Isso abre uma caixa de diálogo de login para usuário e senha. Depois de 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 de volta com uma resposta de vários estados com um "HREF" para o diretório raiz. Nesse ponto, o mini-redirecionador ativa novamente o prompt de login e o faz 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, é o servidor IS encontrado, eu posso vê-lo no Fiddler, e o servidor está respondendo como esperado.

Todos os outros clientes WebDAV de terceiros têm uma troca semelhante com o meu servidor e se conectam e exibem uma lista de diretórios muito bem. Somente mini-redirecionador falha. E como mencionei acima, ele 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. Eu até movi o meu servidor para um site seguro HTTPS com um certificado SSL apenas no caso em que foi o problema, e ainda não funciona. Alguém tem alguma idéia. Eu estou pensando que tem que ser algo para fazer com a minha instalação do IIS 7.5 no servidor, ou uma configuração em todas as outras máquinas cliente, exceto minha máquina de desenvolvimento, porque meu código parece estar bem, o servidor parece responder bem a mini -requisitos de redirecionadores, ele simplesmente não mapeia a unidade após a resposta de 207 multistatus, como acontece com todos os outros clientes.

Qualquer ajuda seria muito apreciada. O que é frustrante é que eu esperava que o mini-redirecionador fosse o mais difícil de se trabalhar, então fiz com que funcionasse primeiro na minha máquina de desenvolvimento antes de testá-lo com todos os outros clientes, então achei que estava em boa forma até que tentei me conectar computadores e viu que estava falhando, mas apenas com mini-redirecionador. Infelizmente, o mini-redirecionador é o mais fácil de usar para meus clientes em potencial, portanto, é imperativo que ele funcione com o mini-redirecionador. Eu posso fornecer a resposta / pedidos do Fiddler se isso ajudar alguém a depurar isso comigo.

    
por jjspierx 14.01.2014 / 05:17

1 resposta

1

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.

link

    
por 15.01.2014 / 20:25