Laden...

Zugriff von ASP.net Applikation auf Shared Drive

Erstellt von Christoph K. vor einem Jahr Letzter Beitrag vor einem Jahr 866 Views
Christoph K. Themenstarter:in
821 Beiträge seit 2009
vor einem Jahr
Zugriff von ASP.net Applikation auf Shared Drive

Hallo,

ich möchte von einer ASP .NET Applikation auf ein Netzlaufwerk zugreifen.
Dies funktioniert weder, wenn ich den UNC direkt ansprechen, noch wenn ich das Drive vorher (z.B. auf E:) mappe und probiere zuzugreifen.

Im ersten Fall kommt immer die Meldung, dass Benutzername und Passwort falsch sind. Im zweiten Fall sagt mir ASP.net, dass E: nicht gefunden werden konnte.
Was soll ich tun?

VG
Christoph

87 Beiträge seit 2016
vor einem Jahr

Hallo,

der Benutzer, unter dem die ASP.NET Applikation läuft, hat die nötigen Rechte auf die Laufwerke?

glandorf

Christoph K. Themenstarter:in
821 Beiträge seit 2009
vor einem Jahr

Nein,
das ist auch nicht möglich, da der ASP-Benutzer ja nur lokal vorhanden ist.
Das NAS und der Rechner sind auch nicht mit einer Domäne verknüpft.

16.827 Beiträge seit 2008
vor einem Jahr

UNC Parameter sollte gehen, sind aber halt in Relation unsicher. Wenn User/PW falsch sind, dann sind sie wohl falsch.
Da können wir auch nicht mehr sagen als: geb die richtigen Daten ein. Die Fehlermeldung lügt nicht.

Im zweiten Fall sagt mir ASP.net, dass E: nicht gefunden werden konnte.

Wahrscheinlich hast Du das Drive als einen User A gemappt und ASP.NET Core ist eben ein anderer User.
Dann sieht der ASP.NET Core User logischerweise das gemappte Drive nicht....

Christoph K. Themenstarter:in
821 Beiträge seit 2009
vor einem Jahr

@Abt

Ich habe das Drive mit dem In Windows angemeldeten Benutzer gemapped, dieser ist WIN-KF1KH9ONF28\Administrator.
Genau mit diesem Benutzer lasse ich den ASP.Net (kein Core!) Prozess im Moment auch laufen.

Wenn ich mir in ASP.Net den User mit


var username = System.Security.Principal.WindowsIdentity.GetCurrent().Name;

ausgeben lassen, erhalte ich auch genau den User.
Ein einfaches


var files = Directory.GetDirectories(@"Z:\");

führt jedoch zu der Expception: DirectoryNotFoundException: Ein Teil des Pfades "Z:" konnte nicht gefunden werden.
In Widows selbst ist das Drive einwandfrei auf Z: gemapped.

16.827 Beiträge seit 2008
vor einem Jahr

Genau mit diesem Benutzer lasse ich den ASP.Net (kein Core!) Prozess im Moment auch laufen.

Wow. Eine Anwendung, die als Admin läuft.
Das verletzt so ziemlich jede Grundregel der IT Sicherheit und verletzt massiv zB. Principle of least privilege Vorgaben des BSI.
Ich hoffe, dass Dich dabei niemand erwischt und damit kein Unheil passiert...

Aber vielleicht muss das passieren, dass man lernt, dass man sowas nicht macht.

führt jedoch zu der Expception: DirectoryNotFoundException: Ein Teil des Pfades "Z:" konnte nicht gefunden werden.

Absolut korrekt. Und das ist auch gut so.
Windows hat ein paar Mechanismen implementiert, die versuchen die Sicherheit zu steigern, zB weil man auf die hirnrissige Idee kommt einer App Adminrechte zu geben.
Diese Mechanismen heissen zB UAC und verhindern, dass ein App mit Evaluiertem Access, wie sie ein Admin-Account hat, auf ein Mapped Drive Access haben.

Mapped drives are not available - Windows Client

This issue also affects other applications that run in an elevated context (run as administrator) and use drive letters to access mapped drives.

Lass einfach so ein hirnrissigen Quatsch und gib einer Anwendung niemals Adminrechte, sondern immer so wenig wie möglich.
Das sind absolute Basics jeder IT und weiß jeder IT Azubis nach 2 Wochen.

Sorry für die harte Ausdrucksweise, aber das is echt ganz ganz übel.

Christoph K. Themenstarter:in
821 Beiträge seit 2009
vor einem Jahr

@Abt

"Da können wir auch nicht mehr sagen als: geb die richtigen Daten ein. Die Fehlermeldung lügt nicht."
=> Genau das ist ja meine Frage. Ich kann den gesammten ASP.Net Prozess ja nicht unter dem User des NAS laufen lassen.

Christoph K. Themenstarter:in
821 Beiträge seit 2009
vor einem Jahr

Was soll denn diese beleidigende Ausdrucksweise?

Erstens ist es ein Testsystem, was in einer Sandbox-Umgebung läuft und zweitens hat das überhaupt nichts mit meiner Frage zu tun.

Vergiss es einfach, ich gucke woanders nach Hilfe.

16.827 Beiträge seit 2008
vor einem Jahr

Das ist nicht nur ein grober Schnitzer, das ist ein fataler Weg - ganz egal ob Dev, Test oder Prod. Ein so großer Patzer, der niemals passieren darf.
Ein Betriebssystem erkennt nicht, ob das ein Test ist oder produktiv.

Entsprechend sehr deutlich, weil das in der Regel ein kommunikativer Weg ist, um ein eklatantes Vorgehensproblem anzusprechen, habe ich dieses angesprochen.

Sorry für die harte Ausdrucksweise, aber das is echt ganz ganz übel.

Hätte ich einen alternativen Kommunikationsweg wie "das ist halt so nicht richtig" auf schriftliche Art und Weise gewählt, wäre die Stufe und Härte dieses Fehlers nicht deutlich geworden.

T
2.222 Beiträge seit 2008
vor einem Jahr

Mach es doch ganz simpel und leg für das Web einen Benutzer auf dem Server und dem NAS an.
Dieser sollte dann einfach über eine Freigabe auf die Daten zugreifen können, ganz normal via UNC Pfad mit Server und Freigabe.

Wir fahren auch einen ähnlichen Aufbau, wobei ausgelagerte historische Daten über eine Freigabe einfach aus Textdateien eingelesen und verarbeitet werden.
Sollte von der Umsetzung her kein Problem sein.

Ansonsten muss ich Abt zustimmen, nicht mal zum testen sollte man solche Systeme als Admin laufen lassen.
Die Regel gilt auch außerhalb von Web Anwendungen!
Im schlimmsten Fall wird das Testsystem einfach laufen gelassen und bildet damit ein Angriffsziel.
Damit gibt man sich quasi selbst zum Abschuss frei, was absolut unnötig und seit Jahren bekannt ist!

T-Virus

Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.

16.827 Beiträge seit 2008
vor einem Jahr

Mach es doch ganz simpel und leg für das Web einen Benutzer auf dem Server und dem NAS an.

Das geht ja nicht, wenn es kein zentrales Benutzermanagement gibt.

Müssen also zwei User sein, die angelegt werden müssen - jeweils mit minimalsten Rechten.