A abordagem draconiana de apenas negar o verbo OPTIONS no IIS globalmente é uma possibilidade? Você pode instalar o URLScan e colocar OPTIONS no [DenyVerbs] configuração.
Temos um site que hospeda documentos do Office por trás da autenticação básica do IIS6.
O IE tem um token de autenticação para autenticação básica, que é apresentado para baixar o arquivo. O usuário clica em "Abrir" e, em seguida, o Microsoft Office Protocol Discovery faz uma solicitação HTTP OPTIONS no diretório do qual o arquivo foi atendido. No entanto, o Office não tem o token de autenticação que o IE faz, portanto, ele solicita novamente as credenciais . Atingir o Cancelar mostrará o arquivo no Office.
Como não somos uma aplicação do tipo Sharepoint e não temos como responder a OPTIONS, gostaria de responder a todas as solicitações com o método OPTIONS (enviadas com um user-agent de "Microsoft" Office Protocol Discovery ") com algo como um 200 vazio, como RFC 2616 declara:
If no response body is included, the response MUST include a Content-Length field with a field-value of "0".
Eu estou inclinado para um filtro ISAPI que responde com 200 - antes que ocorra a autenticação básica. Autenticação do Windows ou acesso anônimo não são opções. Há alguma alternativa que eu esteja sentindo falta?
A abordagem draconiana de apenas negar o verbo OPTIONS no IIS globalmente é uma possibilidade? Você pode instalar o URLScan e colocar OPTIONS no [DenyVerbs] configuração.
Acho que você pode desativar o WebDAV para um site usando appcmd.exe. Você poderia criar um site separado para armazenar os documentos e desabilitar o WebDAV? Isso não deve afetar nenhum site do SharePoint em execução no mesmo servidor.
JR
Um pouco longo demais para um comentário, então vou abusar de uma resposta. Na verdade, isso não se aplica à sua pergunta, e eu não acho que esse comportamento vai incomodá-lo, mas apenas para ter certeza de que você sabe disso.
Ao contrário, ao clicar em URLs em um documento do Office, o Office (2007) primeiro tenta determinar o que o URL faz. Se isso gerar algum redirecionamento 301 para uma página de logon porque o visitante (sendo o Office) não está autorizado, o Office, na verdade, ignorará o URL original. Em vez disso, ele abre o URL 301 no navegador padrão, que nem sempre é o IE.
Isso pode direcionar as pessoas para uma página de login mesmo quando elas já tiverem seu navegador padrão em execução e autorizado. Esse é um pequeno incômodo quando o URL que foi clicado ainda está disponível em algum parâmetro GET do URL 301, como login?goto=original-url
. No entanto, se a URL original for armazenada em alguma sessão (para a qual o Office mantém o cookie, não o navegador), o usuário ficará preso na página de login, pois o servidor da Web não saberá qual página exibir depois login ...
Eu testei apenas usando o Office 2007, que na época usava o seguinte User Agent para sua solicitação oculta em relação a um servidor Apache:
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0 [...])
Portanto, presumo que o Office 2007 realmente use o IE para fazer a solicitação. Também notei que o Office 2007 pode acessar os cookies do IE. Por exemplo: quando o usuário é autorizado usando o IE (usando um cookie; não testei usando a Autenticação Básica), o Office não recebe o Redirecionamento 301 para uma página de login. Então, quando o Office faz o pedido engraçado, ele passa o cookie do IE para o servidor. Pode também passar qualquer cookie recebido de volta para o IE (eu não testei isso).
(Obrigado pelo link para esse artigo da KB!)
Talvez você deva verificar sua configuração do iis6.
na configuração do site - > home dir - > Configuração - > mapeamentos Você tem um mapeamento para a extensão .doc.
outra coisa: configuração do site - > home dir - > configuração - > mapeamento - > opções: a opção de estado de sessão de ativação, está ativa?
outra coisa: Você está usando mais "trabalhadores" no pool de aplicativos? (não use mais de um) - pools de aplicativos - > propriedades - > desempenho - > jardim web número máximo de trabalhadores - > defina para "1"
Às vezes, se houver mais de um processo de trabalho, a "autenticação" pode ser "perdida"