Não é possível autenticar para o serviço ASP.NET Web Api com o HttpClient

Eu tenho um serviço ASP.NET Web API que é executado em um servidor web com a autenticação do Windows habilitada.

Eu tenho um site de cliente construído em MVC4 que é executado em um site diferente no mesmo servidor web que usa o HttpClient para extrair dados do serviço. Esse site de cliente é executado com a representação de identidade ativada e também usa a autenticação do Windows.

O servidor da web é o Windows Server 2008 R2 com o IIS 7.5.

O desafio que estou tendo é fazer com que o HttpClient passe o usuário atual do Windows como parte de seu processo de autenticação. Eu configurei o HttpClient dessa maneira:

<code>var clientHandler = new HttpClientHandler();
clientHandler.UseDefaultCredentials = true;
clientHandler.PreAuthenticate = true;
clientHandler.ClientCertificateOptions = ClientCertificateOption.Automatic;
var httpClient = new HttpClient(clientHandler);
</code>

No meu entender, a execução do site com a representação de identidade habilitada e a criação do cliente dessa maneira deve resultar na autenticação do cliente para o serviço usando a identidade representada do usuário conectado no momento.

Isso não está acontecendo. Na verdade, o cliente não parece estar autenticando nada.

O serviço está configurado para usar a autenticação do Windows e isso parece funcionar perfeitamente. Eu posso ir parahttp: // server / api / shippers no meu navegador da web e ser solicitada a autenticação do windows, uma vez inserida, recebo os dados solicitados.

Nos logs do IIS, vejo as solicitações da API sendo recebidas sem autenticação e recebendo uma resposta de desafio 401.

Documentação sobre este parece ser escassa.

Eu preciso de algumas dicas sobre o que poderia estar errado ou outra maneira de usar a autenticação do Windows com este aplicativo.

Obrigado Craig

questionAnswers(4)

yourAnswerToTheQuestion