Η CreateUserWizard χρησιμοποιεί τον Membership provider οπότε μάλλον θα πρέπει να αντικαταστήσεις και αυτήν - και όλη την υποστήριξη που σου προσφέρει το ASP.NET 2.0.
Όσον αφορά το "ποιός είναι ο κατάλληλος τρόπος", αυτό εξαρτάται από την εφαρμογή σου. Σε μία internet εφαρμογή δεν μπορείς να φτιάξεις ένα database user ανά χρήστη της εφαρμογής. Επίσης, είναι πιο ασφαλές οι χρήστες να μην έχουν τρόπο πρόσβασης στη βάση παρακάμπτωντας την εφαρμογή. Σε αυτή την περίπτωση θα πρέπει να ακολουθήσεις τη συμπεριφορά του SqlMembershipProvider και ανάλογα με το τί θέλεις, να αποθηκεύεις στη βάση είτε encrypted είτε hashed την τιμή του password.
Σε ένα περιβάλλον intranet, μπορείς να χρησιμοποιήσεις Windows Authentication οπότε το μόνο που θα χρειάζεσαι θα είναι να προσθέσεις τα κατάλληλα permissions στα folder του web application - π.χ. μπορείς να φτιάξεις ένα Group MyApplicationUsers και να προσθέσεις σε αυτούς τους χρήστες της εφαρμογής σου. Σε αυτή την περίπτωση βέβαια, μάλλον δεν θα χρειάζεσαι εφαρμογή για account management - εκτός και αν θέλεις να φτιάξεις μία εφαρμογή για να προσθέτεις/αφαιρείς χρήστες στο κατάλληλο group.
Τέλος, αν οι χρήστες ήδη έχουν πρόσβαση στη βάση π.χ. για να χρησιμοποιήσουν άλλες εφαρμογές ή για να δημιουργήσουν reports μπορείς να βασιστείς στα database accounts, επιβάλλοντας η εφαρμογή να συνδέεται στη βάση χρησιμοποιώντας τα username/passwords που έχει δώσει ο χρήστης. Και πάλι, η καλύτερη λύση είναι να δημιουργήσεις ένα ρόλο (κάτι αντίστοιχο με τα Windows Groups) με την εντολή CREATE ROLE και να δώσεις σε αυτή τα απαραίτητα δικαιώματα. Μετά, προσθέτεις και αφαιρείς χρήστες στο ρόλο.
Μπορείς πάντως να δοκιμάσεις να φτιάξεις τους δικούς σου Membership providers οι οποίοι θα υποστηρίζουν τις παραλλαγές που θέλεις. Θα μπορούσες για παράδειγμα να φτιάξεις ένα provider ο οποίος θα δημιουργεί database users.
Παναγιώτης Καναβός, Freelancer
Twitter: http://www.twitter.com/pkanavos