Laden...

Wo / wie (Benutzer)-Berechtigungen aus XML speichern?

Erstellt von Diräkt vor 13 Jahren Letzter Beitrag vor 13 Jahren 973 Views
Hinweis von MarsStein vor 13 Jahren

Abgeteilt von ASP Globale Werte laden || Performance

D
Diräkt Themenstarter:in
615 Beiträge seit 2009
vor 13 Jahren
Wo / wie (Benutzer)-Berechtigungen aus XML speichern?

Besten Dank für Eure Informationen !

@Peter Bucher

-> - Anwendungsglobal und kein Änderungsbedarf zur Laufzeit => Application

Das heisst nach erfolgreichem Login, lese ich die XML Datei rein und speichere sie als List<T> in einem Singelton z.B ?

Oder wie würdest du dies machen ?

Beste Grüsse

Diräkt

3.170 Beiträge seit 2006
vor 13 Jahren

Hallo Diräkt,

wenn die Einstellungen von einem Login abhängig sind, sollten sie in die Session. Da es Dir ja offenbar um Berechtigungen geht, könntest Du bei erfolgreichem Login das XML asulesen, und die Berechtigungen für den jeweiligen Benutzer in einem Berechtigungsobjekt abbilden - dazu könntest Du die von Dir angesprochene List<T> nutzen.
Wenn Du das einmal per Login machst, gibt's auch nicht so viele I/O-Zugriffe.
Nur globale Anwendungsdaten gehören in die Application, und das sollten Benutzerrechte IMHO nicht sein. Einen Singleton braucht Du dafür nicht.
Siehe auch:
Page.Application-Eigenschaft
Page.Session-Eigenschaft

Gruß, MarsStein

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca

5.942 Beiträge seit 2005
vor 13 Jahren

Hallo zusammen

Wenn die Berechtigungen eines einzelnen Benutzers gespeicher werden, sieht das nach Session aus.
Ist es allerdings eine komplette Liste mit allen Berechtigungen für alle Benutzer, wo dann je nach Benutzer nach einer Abfrage die jeweiligen Berechtigungen geholt werden, kann man das Anwendungsglobal machen.

Gruss Peter

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011

3.170 Beiträge seit 2006
vor 13 Jahren

Hallo,

Ist es allerdings eine komplette Liste mit allen Berechtigungen für alle Benutzer, wo dann je nach Benutzer nach einer Abfrage die jeweiligen Berechtigungen geholt werden, kann man das Anwendungsglobal machen.

können schon, aber warum sollte man ein Berechtigungsobjekt mit allen Rechten für alle Benutzer vorhalten? Es genügt Doch, die Rechte für die Benutzer zu halten, die auch tatsächlich angemeldet siind.
Die globale (einmal eingelesene) Liste hat auch den Nachteil, dass wenn Berechtigungen in der XML-Datei von extern geändert werden, dies erst nach Anwendungsneustart greift - oder man muss die Datei beobachten. Und wenn sie von intern geändert werden, muss die Liste mitgepflegt werden.
Wenn man per Login einliest und über die Session geht greifen Änderungen beim nächsten Login.

Gruß, MarsStein

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca

5.942 Beiträge seit 2005
vor 13 Jahren

Hallo MarsStein

Ja, das stimmt allerdings im konkreten Fall.
Meine Aussage war ein bisschen zu allgemein gehalten.

Gruss Peter

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011

D
Diräkt Themenstarter:in
615 Beiträge seit 2009
vor 13 Jahren

Hallo zusammen 😃

Das von MarsStein beschriebene Problem mit dem neustart habe ich auch gerade bemerkt lach

@ Marstein würdest du also folgendes gut finden :
-> Session_Start -> Bererechtigungen für User werden geladen -> XML in Session[];
-> Session_End -> Session wird gelöscht.

Besten Dank für Eure Antworten !

Diräkt

3.170 Beiträge seit 2006
vor 13 Jahren

Hallo,

Session_Start -> Bererechtigungen für User werden geladen -> XML in Session[];

Aber wenn dann nur den Teil für den einen User. Die Einträge für die anderen User haben da nix verloren.

Aber warum nicht gleich die aus dem XML ermittelten Berechtigungen in die Session legen? Sonst musst du das XML ja immer wieder auswerten.

Session_Start ist auch etwas früh, eine Sitzung gibt's normalerweise schon vor der Anmeldung.

Gruß, MarsStein

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca