Abgeteilt von ASP Globale Werte laden || Performance
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
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
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
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
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
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
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