Representação no aplicativo da Web ASP.NET não funciona quando executado no IIS

Eu estou trabalhando no aplicativo da web do asp.net 4.0 MVC3 que funciona no ambiente de intranet. O aplicativo faz uso da autenticação do Windows. Seu pool de aplicativos é executado pelo usuário de domínio que possui spn em um controlador de domínio. A autenticação funciona usando o Kerberos (no IE e no Firefox após algumas configurações adicionais).

Agora eu quero fazer upload de arquivos para o sharepoint, mas é importante para mim fazer o upload do arquivo como o usuário atualmente logado no aplicativo (para que o arquivo seja criado no Sharepoint com suas credenciais).

Eu tenho o seguinte código emResourceExists(Uri uri) função:

'...
    Dim identity As System.Security.Principal.WindowsIdentity = HttpContext.User.Identity
    Dim impersonationContext = identity.Impersonate()
    response = request.GetResponse()
    impersonationContext.Undo()
'...

Isso funciona quando executado localmente, mas quando eu implantar no servidor eu recebo a exceção:

System.Net.WebException: The remote server returned an error: (401) Unauthorized.\r\n   at WebDav.WebDavClient.ResourceExists(Uri uri)\r\n   at Website.Website.WebdavController.Upload(HttpPostedFileBase file, UploadViewModel vm)

Eu li algo sobre passar as credenciais, que não é possível com o NTLM, mas tenho certeza de que estou usando o Kerberos (verifiquei os cabeçalhos com wireshark e fiddler) e vejo o seguinte:

Authorization: Negotiate YIIFpQYGKwYBBQUCoIIFmTCCBZWgJDAiBgkqhkiC9x...

Alguma idéia de por que a representação não funciona quando executada no servidor IIS?

questionAnswers(3)

yourAnswerToTheQuestion