Der Identitätswechsel in der ASP.NET-Webanwendung funktioniert unter IIS nicht

Ich arbeite an einer ASP.NET 4.0 MVC3-Webanwendung, die in einer Intranetumgebung funktioniert. Die Anwendung verwendet die Windows-Authentifizierung. Der Anwendungspool wird von einem Domänenbenutzer ausgeführt, der auf einem Domänencontroller einen SPN-Wert festgelegt hat. Die Authentifizierung funktioniert mit Kerberos (unter IE und Firefox nach einer zusätzlichen Konfiguration).

Jetzt möchte ich Dateien auf Sharepoint hochladen, aber es ist wichtig, dass ich die Datei als der aktuell in der Anwendung angemeldete Benutzer hochlade (damit die Datei auf Sharepoint mit seinen Anmeldeinformationen erstellt wird).

Ich habe den folgenden Code inResourceExists(Uri uri) Funktion:

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

Dies funktioniert bei lokaler Ausführung, aber wenn ich auf dem Server bereitstelle, erhalte ich die Ausnahme:

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)

Ich habe etwas über die Weitergabe der Anmeldeinformationen gelesen, was mit NTLM nicht möglich ist, aber ich bin sicher, dass ich Kerberos verwende (ich habe die Header mit Wireshark und Fiddler überprüft) und sehe Folgendes:

Authorization: Negotiate YIIFpQYGKwYBBQUCoIIFmTCCBZWgJDAiBgkqhkiC9x...

Irgendwelche Ideen, warum der Identitätswechsel nicht funktioniert, wenn er auf dem IIS-Server ausgeführt wird?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage