C# 3.5 ASP.net Datei-E / a-Problem, UnauthorizedAccessException in eine Datei auf der Netzwerkfreigabe
Bekomme ich eine UnauthorizedAccessException jedesmal, wenn ich versuche, access (nur Lesen) eine Datei auf einer Netzwerkfreigabe "\\server\Ordner1\Ordner2\Datei.pdf."
Bin ich die Identität des domain\aspnet-Benutzer die Lesen & schreiben der Zugriff auf die oben genannten Ordner. Die Datei ist nicht schreibgeschützt.
Habe ich versucht zu finden, die Berechtigungen via-System.Sicherheit.Die Berechtigungen.FileIOPermission. Es sagt nur NoAccess alle Dateien.
Ich bin mir nicht sicher, was ich tun kann.
Ich benutze Visual Studio 2008, ASP.net 2.0 Framework 3.5, WinXP, IIS 5.1.
- Sind Sie sicher, dass Sie das annehmen einer domain-level-Konto und nicht ein Computer-Konto? Sie benötigen eine domain-level-Konto, um den Zugriff auf die Freigabe.
- Ich bin positiv.
Du musst angemeldet sein, um einen Kommentar abzugeben.
ASP.NET Benutzer arbeiten nicht mit dem Netzwerkpfad. So müssen Sie ein windows-Konto, das
alle Rechte und dann müssen Sie imposernate Dinge im web.config wie folgt aus.
Nehme ich an, dass Sie den Identitätswechsel richtig. Sie schaltete den anonymen Zugriff, legen Sie den Authentifizierungsmodus auf Windows und legen Sie die Identitätswechsel zu wahren, etc.
Sogar mit allen, die richtig gemacht und das richtige Konto imitiert werden Sie noch nicht in der Lage auf die Datei zugreifen. Das Konto, dessen Identität angenommen wird, über sogenannte Netzwerk-Anmeldeinformationen. Diese sind nur gültig, auf der Maschine, auf der der Identitätswechsel statt. Wenn Sie versuchen, auf eine Datei auf dem computer selbst der Zugriff erfolgt mit den Anmeldedaten des Benutzers, aber für eine Datei auf eine Freigabe, der Zugriff erfolgt als nicht-authentifizierte Benutzer, und so wird kein Zugriff erlaubt.
Um Ihnen zu erlauben, verwenden Sie die Anmeldeinformationen des Benutzers für den remote-Arbeit, d.h. auf die Freigabe zugreifen, die integrierte Sicherheit für eine remote-Datenbank, etc. müssen Sie Delegierung verwenden, anstatt Identitätswechsel. Dies ist ein etwas kompliziertes Thema mit Ihren Active Directory-set-up und die IIS-Konfiguration. Haben Sie einen Blick auf dieser Artikel, es sollte Ihnen einen guten Ort, um zu starten.
Stellen Sie sicher, dass die domain-Benutzer Sicherheitsberechtigungen und Aktie Rechte. Das ist, auf den freigegebenen Ordner, fügen Sie die Domäne Benutzer unter dem Register "Freigabe" in den Eigenschaften, wie Brunnen, wie Sie unter der Registerkarte "Sicherheit".
Welche IIS-version Sie verwenden? Wenn es version 6 ist, können Sie die web-app in einem eigenen Anwendungspool, dann legen Sie die Identität des Anwendungspools, um ein Domänenbenutzerkonto sein. Anschließend erteilen Sie diesem Domänenbenutzerkonto Zugriff auf das Netzwerk zu teilen.
FYI, können Sie die folgenden in eine aspx-Datei, um zu überprüfen, was identifizieren Sie Ihre Seiten ausgeführt werden, wie:
Zugriff auf eine Netzwerkfreigabe der oben Benutzer muss ein Domänenkonto sein, das setup durch einen Netzwerk-administrator.