Πώς μπορώ να ορίσω μια προεπιλεγμένη ρόλο για ένα νέο χρήστη, χρησιμοποιώντας έλεγχο ταυτότητας των Windows με το SqlRoleProvider;

ψήφοι
1

Έχω μια εφαρμογή που χρησιμοποιεί έλεγχο ταυτότητας των Windows και SqlRoleProvider για την ταυτοποίηση του χρήστη και τη διαχείριση του ρόλου αντίστοιχα. Είναι λειτουργούν καλά με τους χρήστες δοκιμή μου που έχουν προστεθεί στη βάση δεδομένων ως προεπιλογές. Η εφαρμογή απαιτεί από τους χρήστες να συνδεθείτε (χρησιμοποιώντας τα διαπιστευτήρια Windows) και, στη συνέχεια, να είναι σε θέση να χρησιμοποιήσετε αυτήν την εσωτερική εφαρμογή ως βασικό «χρήστη». Αν ο χρήστης πρέπει να προστεθεί σε ένα ρόλο υψηλού επιπέδου, ένας διαχειριστής θα είναι υπεύθυνος γι 'αυτό μετά το πρώτο log in.

Με αυτόν εν λόγω, πώς θα μπορώ να προσθέσω ένα χρήστη στο προεπιλεγμένο ρόλο κατά την πρώτη συνδεθείτε; Λογικά, ξέρω ότι θα πρέπει να καλέσετε Roles.IsUserInRole () και, στη συνέχεια, προσθέστε τους αν δεν είναι? Ωστόσο, όταν θα το κάνω αυτό; Αντιμετωπίζω πρόβλημα εντοπισμού που συμβάν στο Global.asax να χρησιμοποιήσετε.

Ευχαριστώ

EDIT: Για να επεκτείνετε το σενάριο λίγο, δεν είμαι χρησιμοποιώντας ένα πλήρες σύστημα πάροχο των μελών λόγω των απαιτήσεων σχετικά με την εγγραφή νέων παρόχων να επιτραπεί η συμβολοσειρά σύνδεσης πρέπει να αποθηκεύεται εκτός του web.config. Δεν χρησιμοποιούν οποιαδήποτε μορφή της εγγραφής ή σύνδεση σελίδα και να αφήσει το ενσωματωμένο έλεγχο ταυτότητας των Windows σε IIS χειριστεί τα ζητήματα ταυτότητας, ενώ ενισχύεται SqlRoleProvider μου διαχειρίζεται τους ρόλους χρηστών. Το σύστημα είναι μια χαρά λειτουργεί για τους χρήστες που έχουν ρόλους ρύθμιση μέσω σκληρό κωδικοποιημένες δοκιμές. Είμαι απλά ψάχνουν για έναν τρόπο για να προσθέσετε νέους χρήστες (οι οποίοι θα πρέπει να επικυρώνονται από IIS) που θα προστεθούν αμέσως σε μια προκαθορισμένη «Χρήστες» ρόλο. Νομίζω ότι βρήκα? Ωστόσο, είμαι τώρα εξετάζουν τρόπους για να κάνουν ότι δεν φωτιά επάνω σε κάθε αίτημα για λόγους απόδοσης.

Δημοσιεύθηκε 09/12/2008 στις 21:13
πηγή χρήστη
Σε άλλες γλώσσες...                            


3 απαντήσεις

ψήφοι
1

Ήμουν σε θέση να εντοπίσει τη λύση μετά το σκάψιμο και να παίζουν γύρω από λίγο περισσότερο. Πρόσθεσα τον ακόλουθο κώδικα στο αρχείο Global.asax μου και είναι πραγματοποιώντας αυτό που ελπίζω.

protected void WindowsAuthentication_OnAuthenticate(object sender, WindowsAuthenticationEventArgs e)
{
    if (!Roles.IsUserInRole(e.Identity.Name, "Users"))
    {
        Roles.AddUsersToRole(new string[] { e.Identity.Name }, "Users");
    }
}

Ανησυχώ διότι αυτός ο κώδικας πυρκαγιές με κάθε αίτημα σελίδας. Υπάρχει καλύτερος τρόπος για να περιορίσει, όταν συμβαίνει αυτό; Θα πρέπει να απλά προσθέστε αυτόν τον κώδικα στο συμβάν Page_Load της σελίδας προορισμού αντί του Global.asax;

Απαντήθηκε 09/12/2008 στις 21:51
πηγή χρήστη

ψήφοι
0

Γιατί να μην το κάνει κατά την εγγραφή το όνομα χρήστη ή;

Όταν η σύνδεση, να χειριστεί αυτό το γεγονός και να θέσει αυτό. Ελέγξτε κάθε φορά που login.

Απαντήθηκε 09/12/2008 στις 22:08
πηγή χρήστη

ψήφοι
0

Θα ήθελα να προσθέσω το προεπιλεγμένο ρόλο στον χρήστη άμεσα αφού ο χρήστης ήταν τραβηγμένο.

Κάτι σαν όπως:

user = Membership.GetUser()
if (user != null)
{
  // default role 
  string[] defaultRoles = {"MyRole"};

  AddUsersToRoles(user, defaultRoles); 

}
Απαντήθηκε 09/12/2008 στις 21:23
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more