Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
ASP.NET und IIS8.5 Ordnerzugriff dynamisch einschränken
d.gierse
myCSharp.de - Member



Dabei seit:
Beiträge: 116

Themenstarter:

ASP.NET und IIS8.5 Ordnerzugriff dynamisch einschränken

beantworten | zitieren | melden

Hallo,

ich habe eine WebForms-Anwendung mit einer laufend wachsenden Zahl an Kunden, die darin verwaltet werden. Zur Authentifizierung verwende ich FormsAuthentication.
Jeder Kunde soll nun die Möglichkeit bekommen, in einem Verzeichnis für sich und alle zum Kunden gehörenden Benutzer HTML-Seiten abzulegen, z.B. mit einer Beschreibung.

Dazu lege ich nun in meiner Webanwendung in einem Ordner für jeden Kunden anhand seiner Kundennummer einen neuen Ordner an, in dem er die HTML-Seiten ablegen kann. Ich habe dann im Webserver eine Ordnerstruktur:

CustomerData
-1
- infos1.html
- infos2.html
-3
- beschreibung.html
-4

Kann ich nun irgendwie verhindern, das ein Benutzer von Kunde 3 die HTML-Seiten von Kunde 1 aufrufen kann, ohne in der web.config nun für jedes Verzeichnis einen Eintrag machen zu müssen?
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16152

beantworten | zitieren | melden

Du willst ein Mehrmandantensystem; ergo muss das Deine Logik vollständig abdecken - oder Du baust Dir eine Mehrmandanten-Datenbank.
Weder ASP.NET Konfigurationsmaßnahmen noch der IIS helfen Dir da.

PS: sofern es sich um Kundendaten handelt, musst Du im Hinblick besonders sorgfältig im Rahmen von GDPR sein.
- performance is a feature -

Microsoft MVP - @Website - @blog - @AzureStuttgart - github.com/BenjaminAbt
private Nachricht | Beiträge des Benutzers
d.gierse
myCSharp.de - Member



Dabei seit:
Beiträge: 116

Themenstarter:

beantworten | zitieren | melden

also ich bin schon davon überzeugt, das mir der IIS und ASP.Net da helfen können. Die einfachste Methode wäre es, in jedem Mandantenordner eine web.config abzulegen, in der ich mit

<system.web>
  <authorization>
    <deny users="*"/>
    <allow roles="Mandant3"
  </authorization>
</system.web>

den Zugriff auf eine Rolle einschränke. Nur ich müsste halt für jedes Verzeichnis eine web.config mit dem passenden Inhalt bei allow roles erstellen und im Verzeichnis ablegen. Die Rolle bekommt der Benutzer dann halt beim Login anhand seiner Mandantschaft(en) zugewiesen.

Da frage ich mich halt, ob das nicht einfacher geht
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16152

beantworten | zitieren | melden

Du kannst das ruhig so machen, aber das ist dann ziemlich unsicher und schei*e.
Und nein, Dein Forms-Login kann hier nicht verwendet werden. Das würde in der Form nur bei Windows-Authentication funktionieren.
- performance is a feature -

Microsoft MVP - @Website - @blog - @AzureStuttgart - github.com/BenjaminAbt
private Nachricht | Beiträge des Benutzers
d.gierse
myCSharp.de - Member



Dabei seit:
Beiträge: 116

Themenstarter:

beantworten | zitieren | melden

moin,

kannst Du erklären, warum das unsicher ist?
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16152

beantworten | zitieren | melden

Weil Du physikalischen Zugriff nach Außen freigibst.
Eine falsche NTFS Einstellung - zB. durch ein unbedachtes Konfigurieren - und die gesamte Festplatte ist (theoretisch) zugreifbar.
- performance is a feature -

Microsoft MVP - @Website - @blog - @AzureStuttgart - github.com/BenjaminAbt
private Nachricht | Beiträge des Benutzers