Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

asp.net mvc authentication-membership

Îåêßíçóå áðü ôï ìÝëïò DaltonGR. Τελευταία δημοσίευση από το μέλος George Parissis στις 24-10-2012, 13:13. Υπάρχουν 1 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  24-10-2012, 08:58 71467

    asp.net mvc authentication-membership

    Καλημέρα,
    Φτιάχνω μια απλή εφαρμογή,περισσότερο για να εξικοιωθώ με το ASP.Net MVC, και ρωτώ τώρα ο άσχετος, δεν θέλω να χρησιμοποιήσω την βάση δεδομένων που δίνει το asp.net για membership, αλλά μία δική μου βάση με δικούς μου πίνακες. Μπορώ να το κάνω αυτό; και πώς;

    Ευχαριστώ εκ των προτέρων.
  •  24-10-2012, 13:13 71469 σε απάντηση της 71467

    Απ: asp.net mvc authentication-membership

    Ναι βεβαίως και μπορείς. Πρόσφατα μάλιστα υπήρχε και ένα άλλο post για τον ίδιο λόγο μόνο που εκεί δεν γράφτηκε ο τρόπος.

    Το πρώτο πράγμα που πρέπει να κάνεις είναι ένα Subclass της MembershipProvider. Αν θυμάμαι καλά βρίσκεται κάτω από το system.web.security και είναι MustInherit.

    Από όλες τις overridable functions & methods αυτή που σε ενδιαφέρει για Authentication είναι η ValidateUser που επιστρέφει True/False.

    Αν θέλεις να δώσεις περισσότερη λειτουργικότητα στον provider που φτιάχνεις μπορείς να κάνει Override και άλλες μεθόδους.

    Μέσα στην ValidateUser βάζεις τον κώδικα που θέλεις εσύ για να κάνεις Authenticate. Π.χ πρόσβαση σε έναν πίνακα χρηστών και έλεγχος για το αν υπάρχει ο χρήστης κτλ.

    Το δεύτερο που θα πρέπει να γίνει, προεραιτικά θα έλεγα και θα εξηγήσω, είναι να ενημερώσεις το MVC ότι πλέον για Authentication έχεις φτιάξει τον δικό σου provider. Οπότε μέσα στο Web.Config θα γράψεις αν έχεις ονομάσει την class που έφτιαξες MyCustomProvider

    <membership defaultProvider="MyCustomProvider">

    <provider>

    <clear />

    <add name="MyCustomProvider" type="<εδώ θα βάλεις το πλήρες type της class π.χ MyApp.Subfolder.MyCystomProvider"/>

    </providers>

    </membership>

     

    Και το τρίτο είναι να γράψεις τον κώδικα που θα εκτελείτε όταν θέλεις να κάνεις το authentication και θα πάρει όλα τα παραπάνω και θα τα βάλει να δουλέψουν. Για παράδειγμα σε μία

    <HTTPPost>

    Public Function LogOn....

    ???????

    End Function

    Τώρα στο βήμα 2 σου είχα πει πως δεν είναι υποχρεωτικό να κάνεις τις δηλώσεις μέσα στο Web.Config

    Αν δεν το κάνεις τότε επειδή το MVC δεν γνωρίζει το custom provider που έφτιαξες θα πρέπει μέσα στην LogOn να φέρεις το Instance του provider που έχεις φτιάξεις. Δηλαδή κάτι σαν

    Dim myProvider as new MyCustomprovider.

    myProvider.Authnticate....

    ή θα μπορούσες να το φέρεις με IoC.

    Κάνοντας όμως της δηλώσεις στο Web.Config τότε μέσα στην Login μπορείς απλά να γράψεις Membership.Authenticate Το Membership αναφέρεται σε ότι default provider έχεις δηλώση.

    Αν το Authentication επιστρέψει True το τελευταίο που έχεις να κάνει είναι να καλέσεις την FormsAuthentication.SetAuthCookie για να δημιουργήσει το cookie και έτσι ο χρήστης να μην χρειάζεται σε κάθε request να κάνει Authentication.

     

Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems