Podszywanie się w aplikacji WWW ASP.NET nie działa, gdy działa na IIS

Pracuję nad aplikacją internetową ASP.NET 4.0 MVC3, która działa w środowisku intranetowym. Aplikacja korzysta z uwierzytelniania systemu Windows. Jego pula aplikacji jest uruchamiana przez użytkownika domeny, który ma spn ustawiony na kontrolerze domeny. Uwierzytelnianie działa przy użyciu Kerberos (w IE i Firefox po dodatkowej konfiguracji).

Teraz chcę przesłać pliki do sharepoint, ale ważne jest, aby przesłać plik jako użytkownik aktualnie zalogowany do aplikacji (aby plik został utworzony na Sharepoint przy użyciu jego poświadczeń).

Mam następujący kodResourceExists(Uri uri) funkcjonować:

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

Działa to podczas uruchamiania lokalnego, ale po wdrożeniu na serwerze otrzymuję wyjątek:

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)

Czytałem coś o przekazywaniu poświadczeń, co nie jest możliwe w NTLM, ale jestem pewien, że używam Kerberos (sprawdziłem nagłówki z wireshark i skrzypkiem) i widzę następujące rzeczy:

Authorization: Negotiate YIIFpQYGKwYBBQUCoIIFmTCCBZWgJDAiBgkqhkiC9x...

Wszelkie pomysły, dlaczego personifikacja nie działa, gdy działa na serwerze IIS?