Identitätswechsel der aktuelle Benutzer mit WindowsImpersonationContext Zugriff auf Netzwerk-Laufwerk

Brauche ich Zugriff auf eine remote-Laufwerk aus einer Web-App. Das Laufwerk ist nicht zugänglich ASP.NET Prozess, so möchte ich, um die Identität des aktuellen Benutzers für die Anfrage.

Sah ich einige grundlegende Beispiele für die Verwendung von WindowsImpersonationContext, und haben versucht, die folgenden.

WindowsImpersonationContext impersonationContext = null;

try
{
    impersonationContext = ((WindowsIdentity)User.Identity).Impersonate();

    file.SaveAs(filePath);
}
finally
{
    if (impersonationContext != null)
    {
        impersonationContext.Undo();
    }
}

Ich bin noch immer eine access denied exception.

Habe ich gelesen, ein bisschen was über LogonUser, aber soweit ich sagen kann, benötigen Sie einen Benutzernamen und ein Kennwort zum abrufen der Anmeldeinformationen aus. Ich bin nicht auf der Suche zu sich als einem anderen bestimmten Benutzer nur der aktuelle Benutzer (wer soll Zugriffsrechte auf die Datei zu speichern), so dass ich glaube nicht, dass ich wirklich brauchen, die LogonUser API.

Hat jemand eine Idee was mir fehlt? Sollte der obige code funktioniert?

Ich würde auch beachten, dass darunter

<identity impersonate="true" />

nicht funktioniert, aber einschließlich

<identity impersonate="true" userName="myName" password="myPassword" />

in der web.config lässt mich in. Ich habe gesehen, ein paar Leute Fragen, Fragen, warum dieses ist, aber ich habe keine Erklärung. Ich wundere mich, wenn es angeschlossen ist, zu meinem problem aber.

Ist die web-site ein Anonymes oder Windows-Identität?
IIS für die Verwendung von Fenster-Identität. Dank

InformationsquelleAutor fearofawhackplanet | 2010-10-08

Schreibe einen Kommentar