labroutsaki:
Προσπαθώ να φτιάξω μια σελίδα όπου ο χρήστης θα κάνει login και αφού είναι σωστά τα στοιχεία να τον πετάει σε επόμενη σελίδα.Τα βήματα που ακολουθώ είναι τα εξής:
Θα προσπαθήσω να ξεμπερδέψω κάποια πράγματα:
Για να μπορέσεις να ενεργοποιήσεις το membership στο μηχάνημά σου μέσα από το administration site, θα πρέπει να έχεις εγκαταστημένo SQL Express στο σταθμό εργασίας σου. Αν έχεις κάνει την default εγκατάταση του Visual Studio 2008, πρέπει να το έχεις εγκατεστημένο. Διαφορετικά θα πρέπει να τον εγκαταστήσεις.
- Ξεκινάω την διαδικασία δημιουργώντας ένα καινούργιο web site. To καινούργιο web site έχει μια σελίδα default.aspx και το web.config.
- Στην συνέχεια μέσα από το Visual Studio ξεκινάω το ASP.NET Configuration web site.
- Από το site του Web site Administration Tool επιλέγω "Security". Στην σελίδα που ακολουθεί υπάρχει το "κουτάκι" που έχει τον τίτλο "Users". Χρησιμοποιώ το link "Select authentication type" και αλλάζω το user access σε "From the Internet" και επιλέγω "Done".
- Επιστρέφω στην προηγούμενη σελίδα και βλέπω ότι έχει αλλάξει το κουτάκι "Users" και ότι δεν υπάρχουν χρήστες στο site. Επιλέγω "Create User", δημιουργώ ένα καινούργιο χρήστη, και στην ειδοποίηση "Your account was successfully created" επιλέγω "Done". Στο διάλογο δημιουργίας νέου χρήστη που ακολουθεί, επιλέγουμε "Back" και επιστρέφουμε στην σελίδα με τα 3 κουτάκια, και βλέπουμε ότι έχουμε ένα χρήστη.
- Επιλέγω "Create access rules" από το τρίτο κουτάκι και στην σελίδα που ακολουθεί, ενώ είναι επιλεγμένο το directory του site, επιλέγω "Anonymous Users" και "Deny". Με την δημιουργία του rule έχω τελειώσε από το Administration site.
- Τι έχω κάνει:
- Έχω αλλάξει το authentication του site από Windows σε Internet, έχω δημιουργήσει ένα χρήστη, και έχω "κλειδώσει" το site μου από την προσπέλασή του από χρήστες που δεν έχουν γίνει authenticate.
- Τι πρέπει να δω:
- Μέσα στο App_Data folder του web site υπάρχει ένα ASPNETDB.MDB αρχείο. Αυτή είναι η βάση δεδομένω που φυλάει τα δεδομένα των χρηστών
- Στο web.config πρέπει να υπάρχει η εγγραφή: <authentication mode="Forms" /> που είναι η αλλαγή του authentication mode
- Επίσης πρέπει να υπάρχουν οι παρακάτω εγγραφές:
<authorization>
<deny users="?" />
</authorization>
Αυτές εξασφαλίζουν ότι δεν μπορεί να συνδεθεί κάποιος χρήστης στο site και να δει το περιεχόμενό του αν πρώτα δεν γίνει authenticate.
- Τι χρειάζεται να κάνω από εδώ και πέρα:
- Πρέπει να δημιουργήσω μια σελίδα που ονομάζεται login.aspx και βρίσκεται στο root του web site. Επάνω σε αυτή την σελίδα προσθέτω το Login control.
- Κάνω "Βuild Solution" το site για να δω ότι δεν υπάρχουν σφάλαματα.
- Προσπαθώ να δω την Default.aspx σελίδα - κάνω δεξί κλικ στην σελίδα και επιλέγω "View in Browser"
- H σελίδα που βλέπω δεν είναι η Default.aspx αλλά η Login.aspx μιας και ο χρήστης δεν έχει γίνει authenticate. Οταν ο χρήστης συνδεθεί επιτυχημένα ο browser θα οδηγηθεί στην σελίδα Default.aspx - αλλιώς συνεχίσει να επιμένει να συνδεθεί ο χρήστης.
Αυτή είναι η διαδικασία να "κλειδώσεις" ένα site για να μπορούν να βλέπουν το περιεχόμενό του μόνο authenticated χρήστες.
George J.