Responda a OPÇÕES HTTP com autenticação básica

5

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?

    
por crb 19.06.2009 / 16:57

4 respostas

2

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.

    
por 06.08.2009 / 01:33
0

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

    
por 20.06.2009 / 09:11
0

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!)

    
por 18.07.2009 / 13:26
0

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"

    
por 27.08.2009 / 18:55