Το να βρεις ποιός είναι ο χρήστης που εκτελεί μία εφαρμογή είναι πολύ εύκολο, καθώς κάθε εφαρμογή Windows τρέχει ως ο χρήστης που την ξεκίνησε. Έτσι μπορείς να πάρεις τον χρήστη π.χ. από το WindowsIdentity.GetCurrent(). Δεν υπάρχει κανένας λόγος να αποθηκεύσεις ονόματα και passwords σε βάση ή οπουδήποτε αλλού.
Αυτό που χρειάζεσαι στην πραγματικότητα είναι το Authorization, δήλαδή, ο χρήστης ΑΒΓ έχει δικαίωμα να εκτελέσει την εφαρμογή? Έχει δικαίωμα να εκτελέσει τη λειτουργία ΧΨΩ? Ένας τρόπος να το κάνεις αυτό, τον οποίο αγαπάνε και οι administrators, είναι να ορίσεις κάποια Windows Groups για τα διαφορετικά επίπεδα πρόσβασης στην εφαρμογή. Για παράδειγμα, μπορείς να ορίσεις τα group MyApp Administrators, MyApp Simple Users, MyApp Power Users και να ελέγξεις στον κώδικα αν ο χρήστης ανήκει στο ρόλο αυτό, με την WindowsPrincipal.IsInRole().
Οι administrators αγαπάνε αυτό τον τρόπο καθώς μπορούν να ελέγξουν τις προσβάσεις των χρηστών από ένα και μόνο σημείο αντί να πρέπει να πάνε σε κάθε εφαρμογή και να φτιάξουν ξεχωριστά permissions, χρησιμοποιώντας το UI της κάθε εφαρμογής. Άσε που μπορούν να φτιάξουν και scripts για να περνάνε τα κατάλληλα δικαιώματα σε νέους χρήστες εύκολα και γρήγορα.
Παναγιώτης Καναβός, Freelancer
Twitter: http://www.twitter.com/pkanavos