Asp.NET Delegação e Chamando um Serviço Web do SharePoint

1

Estou tentando fazer uma chamada para o Serviço Web de Pesquisa do SharePoint de um aplicativo Asp.NET 4.0 que não reside no servidor do SharePoint. Tudo parece funcionar, aceite que está usando as credenciais do AppPool (uma conta de serviço de domínio) para autenticar no SharePoint, que só retorna resultados aos quais esse pino tem acesso. O que eu preciso ser capaz de fazer é representar o usuário chamador, para que eu obtenha resultados para esse usuário e não para a conta de domínio. Configurei o servidor em que o aplicativo está sendo executado para ser confiável para delegação ao http spn que o servidor do SharePoint está usando, mas recebo um erro 401 ao fazer a representação no meu código. O que eu poderia estar fazendo errado?

    
por Nick DeMayo 17.11.2010 / 19:02

1 resposta

1

Isso é conhecido como a limitação "double-hop" da autenticação NTLM, o que significa que não é possível passar as credenciais dos usuários de um servidor para o próximo. Consulte a seção "Desafio / Respose" em: link . Para superar isso, você precisaria converter para Kerberos Authentication ou com base em declarações (se tiver o SharePoint 2010). Nenhuma dessas opções deve ser tomada de ânimo leve.

No entanto, dependendo das necessidades do seu aplicativo, você pode simplesmente usar uma chamada do cliente para o seu serviço da Web por meio do jQuery ( link ). A chamada viria do navegador em vez do servidor do SharePoint e, portanto, passaria as credenciais do usuário.

    
por 15.03.2011 / 22:39