How to:Membership, Profile, Roles in ASP.NET (Web.Config Ι)

Στο 1ο post της σειράς αυτής έδειξα πως δημιουργούμε την βάση ώστε να χρησιμοποιήσουμε τους μηχανισμούς της ASP.NET που έρχονται έτοιμοι από την έκδοση 2.0 για Membership, Profile και RoleManagement.

Συνεχίζοντας και αφού η βάση είναι έτοιμη αυτό που έχουμε να κάνουμε είναι να ρυθμίσουμε την εφαρμογή μας για να χρησιμοποιήσει τους παραπάνω providers. Θα δείξω λοιπόν τι αλλαγές πρέπει να κάνουμε στο web.config.

Ξεκινώντας η πρώτη αλλαγή που πρέπει να κάνουμε είναι να αλλάξουμε το Authentication Mode από Windows σε Forms (μιας και η εφαρμογή μας θέλουμε να είναι προσβάσιμη από το web).

H αλλαγή γίνεται στο configuration/system.web/authentication και φαίνεται παρακάτω.

FormsAuth

Στη συνέχεια προσθέτουμε μέσα στο system.web ένα element membership όπως φαίνεται στην εικόνα που ακολουθεί.

MembershipAuth

Για να εξηγήσουμε τι ακριβώς προσθέσαμε:

Αρχικά προσθέσαμε το <clear /> που σημαίνει πως ότι providers έχει κάνει η εφαρμογή μας inherit από το machine.config (Βρίσκεται μέσα στον φάκελο C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG) να τους αγνοήσει.

Στη συνέχεια προσθέτουμε εμείς έναν provider με τα παρακάτω χαρακτηριστικά

name: Ένα όνομα που χαρακτηρίζει τον συγκεκριμένο provider ανάμεσα από άλλους. Μπορούμε να βάλουμε ότι τιμή θέλουμε.

type: Ο τύπος του provider και το Assembly που βρίσκεται (για χρήστες που ξεκινάνε τώρα το αφήνουν ως έχει)

connectionStringName: Το όνομα του ConnectionString που θα χρησιμοποιηθεί και βρίσκεται στο αντίστοιχο tag connectionStrings στο web.config

enablePasswordRetrieval (true|false): Αν επιτρέπεται στον χρήστη η ανάκτηση του κωδικού πρόσβασης. Σε περίπτωση που το passwordFormat είναι Hashed τότε υποχρεωτικά η τιμή του είναι false.

requiresQuestionAndAnswer (true|false): By default είναι true αλλά πλέον νομίζω κανένας δεν θέλει οι χρήστες του να υποχρεώνονται να βάζουν Secret Question και Answer.

applicationName: Ειναι ΑΠΑΡΑΙΤΗΤΟ να υπάρχει πριν ξεκινήσουμε να βάλουμε έστω και 1 χρήστη. Και θα πρέπει να παραμένει σταθερό από ‘κει και μετά. Σε περίπτωση που το αλλάξομε αφού έχουμε δημιουργήσει χρήστες τότε είναι πολύ πιθανό όσοι χρήστες υπάρχουν να μην είναι προσβάσιμοι. (Εκτός και αν το αλλάξουμε manually και από την βάση).

requiresUniqueEmail (true|false): True αν θέλουμε ο κάθε χρήστης να έχει διαφορετικό email. Αυτό μπορεί να είναι χρήσιμο όταν θέλουμε να χρησιμοποιείται το email προκειμένου ένας χρήστης να κάνει login.

passwordFormat (Hashed | Encrypted | Clear): Εδώ δηλώνουμε τον τρόπο που θέλουμε τα passwords των χρηστών να αποθηκεύονται στην βάση. Hashed σημαίνει one way encyption και ο χρήστης δεν μπορεί να ανακτήσει το password του (περισσότερο ασφαλές). Ο μόνος τρόπος είναι να γίνει reset. Encrypted σημαίνει πως ο κωδικός βρίσκεται στη βάση κρυπτογραφημένος αλλά μπορεί να ανακτηθεί. Clear σημαίνει πως ο κωδικός αποθηκεύεται στη βάση χωρίς καμία κρυπτογράφηση (λιγότερο ασφαλές).

maxInvalidPasswordAttempts : Ο μέγιστος αριθμός που μπορεί ένας χρήστη να εισάγει λάθος password. Αν ξεπεραστεί τότε ο λογαριασμός γίνεται κλειδώνει και ο χρήστης δεν μπορεί να μπει ακόμα και αν έχει εισάγει τα σωστά στοιχεία. Default:5

minRequiredPasswordLength: Ο ελάχιστος αριθμός χαρακτήρων που πρέπει να έχει ο κάθε κωδικός. Default : 7

minRequiredNonalphanumericCharacters: Ο ελάχιστος αριθμός ειδικών χαρακτήρων που πρέπει να έχει ένα password.πχ !@#$%^&. Default:1

passwordAttemptWindow: Διάστημα σε λεπτά. Αν ένας χρήστης βάλει λανθασμένο κωδικό και η προηγούμενη αποτυχημένη προσπάθεια ήταν σε διάστημα παραπάνω από το ορισμένο τότε ορίζεται ως η πρώτη αποτυχημένη προσπάθεια. Διαφορετικά αυξάνεται το InvalidPasswordAttemps κατά 1.

passwordStrengthRegularExpression: Regular Expression με το οποίο γίνεται evaluate o κωδικός προτού εισαχθεί στη βάση. πχ μπορεί να θέλουμε ο κάθε κωδικός να ξεκινάει με γράμμα και να τελειώνει με αριθμό. Τότε το δηλώνουμε εδώ με ένα regular expression.

Στο επόμενο post θα δείξω τις ρυθμίσεις για Profile και Role Management.

Share/Bookmark
Published Σάββατο, 27 Ιουνίου 2009 12:35 μμ by djsolid

Comments

# How to: Getting Started with Membership, Profile and Roles at ASP.NET (Creating Database) - ASP.net

Pingback from  How to: Getting Started with Membership, Profile and Roles at ASP.NET (Creating Database) - ASP.net

# re: How to:Membership, Profile, Roles in ASP.NET (Web.Config Ι)

Ωραίος djsolid!

Κυριακή, 28 Ιουνίου 2009 2:16 μμ by eparon

# re: How to:Membership, Profile, Roles in ASP.NET (Web.Config Ι)

Thx bro! Really helpful.

Τρίτη, 20 Οκτωβρίου 2009 1:31 πμ by Aggelos Mpimpoudis

Leave a Comment

(required) 
(required) 
(optional)
(required) 
Submit