Wie Objekt User mit der Eigenschaft Rechte?

04/05/2010 - 13:37 von Alexander Richter | Report spam
Hallo,
ich habe eine Klasse User von der ich Objekte erzeuge.
public class User {
public string Name { get; set; }
public string Vorname { get; set; }
public int NutzerID { get; set; }
}

In der Datenbank sind auch die Nutzungsrechte für die
einzelnen Module gespeichert. Vereinfacht dargestellt:

Modul Lesen Schreiben
A x -
B x x
C - -

Wie lege ich diese Informationen zu den Rechten (Modulname,
Lesen ja/nein, Schreiben ja/nein) für jeden User im Objekt User
ab? Wie wird dies standardmàßig/sinnvoll realisiert?

Eine Lösung wàre ein Array Nutzerrechte mit drei Spalten als
Eigenschaft. Ist dies üblich?


Alexander
 

Lesen sie die antworten

#1 Frank Dzaebel
04/05/2010 - 19:12 | Warnen spam
Hallo Alexander,

Wie lege ich diese Informationen zu den Rechten (Modulname,
Lesen ja/nein, Schreiben ja/nein) für jeden User im Objekt User
ab? Wie wird dies standardmàßig/sinnvoll realisiert?
Eine Lösung wàre ein Array Nutzerrechte mit drei Spalten als
Eigenschaft. Ist dies üblich?



Üblich ist eher, dass man Rechte über eine Enumeration mit
Flags-Attribut darstellt. In der DB dann also über eine Zahl.
Ein paar Beispiele im Framework:

[FileSystemRights-Enumeration (System.Security.AccessControl)]
http://msdn.microsoft.com/de-de/lib...ights.aspx

[EventWaitHandleRights-Enumeration (System.Security.AccessControl)]
http://msdn.microsoft.com/de-de/lib...ights.aspx

[MutexRights-Enumeration (System.Security.AccessControl)]
http://msdn.microsoft.com/de-de/lib...ights.aspx

[RegistryRights-Enumeration (System.Security.AccessControl)]
http://msdn.microsoft.com/de-de/lib...ights.aspx

[SemaphoreRights-Enumeration (System.Security.AccessControl)]
http://msdn.microsoft.com/de-de/lib...ights.aspx

Also eine Spalte, die alle Zustànde darstellt.
Das hat viele Vorteile. Aber in Deinem Beispiel
würde ja auch in der User-Klasse eine Referenz auf
das Modul reichen. Also:
public Modul Modul { get; set; }

Das kommt u.a. einfach auch auf Deine Vorlieben und
Anforderungen und den Kontext an, was das geeignetste
Vorgehen da ist.


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen