Frage

Ich baute vor kurzem ein Programm, das eine Remote-Datei von \ some_server \ c $ \ Verzeichnis \ file.xls parst und es funktioniert gut auf meinem lokalen Rechner als nur eine normale aspx Seite.

  

Dann habe ich das Programm in Web-Teil   bilden sich auf meiner VM Sharepoint-Server und I   erhalten diese Fehlermeldung: Zugriff auf den Pfad   '\ Some_server \ c $ \ Verzeichnis \ file.xls'   verweigert wird.

Die Datei Domäne \ authentifizierten Benutzer freigegeben ist , so bin ich nicht sicher, warum es verweigert werden? Ist es möglich, meine Sharepoint versucht es mit einem lokalen oder Netzwerk-Dienstkonto zu nennen? Wie kann ich es lesen bekommen? Danke.

War es hilfreich?

Lösung

Salamander ist richtig, Sharepoint nicht mit Vertrauen läuft, dies zu tun.

Ändern der Vertrauensstufe für Sharepoint in seiner web.config von WSS_Medium Full ist die schnelle Lösung, aber es gibt Auswirkungen auf die Sicherheit ..

Andere Tipps

Nur eine kurze Notiz, könnten Sie NTLM in das klassische Double-Hop-Problem ausgeführt werden. Sie können mit dem vorderen Ende authentifizieren, sondern weil das vordere Ende nicht vergessen hat, kann es dann nicht zu einer Ressource auf einem anderen Server authentifizieren.

Beim Laufen mit erhöhten priviliges und Berechtigungen für die Identität Application Pool basierte Einstellung könnte ein Weg, um Ihre nach vorne zu bewegen.

Ich glaube, Sie müssen RunWithElevatedPrivleges, die Sharepoint das Anwendungspoolkonto verwenden machen. Auch im Auge behalten müssen Sie sicherstellen, dass Anwendungspoolkonto hat Zugriff auf diese Netzwerkfreigabe. Vermeiden Sie volles Vertrauen.

Können Sie weiter erklären, was genau die Vertrauensstufe Einstellung für Sie nicht?

Ich würde denken, dass, wenn Ihre App Pool Identität ein Domänenkonto ist, können Sie SPSecurity.RunWithElevatedPrivileges verwenden, um die App-Pool-Anmeldeinformationen zu verwenden, um auf die Datei zugreifen. Oder Identitätswechsel verwenden, um explizit das Konto eines anderen Anmeldeinformationen übergeben.

Sharepoint läuft in der Regel in einem separaten Anwendungspool. Bitte überprüfen Sie die Identität dieses Anwendungspool.

Ich denke, der Lage sein, Netzwerkpfad für den Zugriff auf den Code hat in volles Vertrauen laufen, was ich nicht glaube, Sharepoint der Fall ist.

Warum speichern die Datei nicht in Sharepoint, so dass Sie einen besseren Zugang zu ihm haben? Legen Sie es in einer versteckten Bibliothek und darauf zuzugreifen SPSecurity.RunWithElevatedPrivledges verwenden.

Es gibt Vorbehalte zu RWEP. Jede Bezugnahme auf SPSite und SPWeb vom SPContext erhalten (dh SPContext.Current.Site) wird nach wie vor unter den privledges des angemeldeten Benutzers ausgeführt. Sie müssen explizit einen Verweis innerhalb des RWEP Delegaten.

SPSecurity.RunWithElevatedPrivileges (Delegierter () { mit (SPSite site = neue SPSite (SPContext.Current.Site.Url)) { Verwendung von (SPWeb web = site.OpenWeb ()) { // ... Tun Sie etwas mit SPWeb } } });

Wenn Sie die Datei von außerhalb Sharepoint zugreifen müssen sie in bestehende Prozesse aktualisieren können Sie die Datei-Freigabe-Pfad verwendet werden, die für alle SPDocumentLibrary die zur Verfügung steht, sondern gehen zu Aktionen -.> Öffnen Sie den Windows Explorer den Netzwerkpfad zu erhalten

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top